1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng hệ thống bài tập trong dạy học lập trình pascal tin học 11

71 379 1

Đ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

Tiêu đề Xây dựng hệ thống bài tập trong dạy học lập trình pascal Tin học 11
Tác giả Nguyễn Thị Hồng Loan
Người hướng dẫn ThS. Nguyễn Văn Hà
Trường học Trường Đại học Sư phạm Hà Nội 2
Chuyên ngành Tin học
Thể loại Khóa luận tốt nghiệp đại học
Năm xuất bản 2018
Thành phố Hà Nội
Định dạng
Số trang 71
Dung lượng 545,16 KB

Cấu trúc

  • CHƯƠNG 1 CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN CỦA ĐỀ TÀI (11)
    • 1.1 Lí luận về bài toán Toán học (11)
      • 1.1.1 Bài toán và lời giải của bài toán (11)
      • 1.1.2 Phương pháp tìm lời giải bài toán Toán học (13)
    • 1.2 Lí luận về bài toán Tin học (14)
      • 1.2.1 Bài toán Tin học (14)
      • 1.2.2 Phương pháp tìm thuật giải bài toán Tin học (15)
    • 1.3 Đặc điểm năng lực nhận thức và năng lực lập trình của HS ở THPT (19)
    • 1.4 Phân loại, vị trí và ý nghĩa của bài tập Tin học (20)
      • 1.4.1 Phân loại (20)
      • 1.4.2 Vị trí (20)
      • 1.4.3 Ý nghĩa (21)
    • 1.5 Biện pháp sƣ phạm khi dạy học bài tập lập trình Tin học (21)
      • 1.5.1 Thông hiểu các thuật toán cơ bản (21)
      • 1.5.2 Phân tích tìm thuật toán giải bài toán (22)
      • 1.5.3 Lập trình và test chương trình với bộ dữ liệu cũ (22)
      • 1.5.4 Khai thác bài toán (23)
  • CHƯƠNG 2 XÂY DỰNG HỆ THỐNG BÀI TẬP DẠY HỌC KĨ NĂNG LẬP TRÌNH PASCAL CHO HỌC SINH LỚP 11 TRƯỜNG THPT (27)
    • 2.1 Tổng quan các bài tập lập trình Tin học 11 THPT (27)
      • 2.1.1 Nội dung chương trình các bài tập lập trình (27)
      • 2.1.2 Một số nguyên tắc xây dựng hệ thống bài tập nhằm củng cố kiến thức và phát triển tư duy sáng tạo (28)
    • 2.2 Xây dựng hệ thống bài tập dạy học lập trình Pascal ở lớp 11 trường (0)
      • 2.2.1 Hệ thống bài tập “Cấu trúc rẽ nhánh” (30)
      • 2.2.2 Hệ thống bài tập “Cấu trúc lặp” (36)
      • 2.2.3 Hệ thống bài tập “Kiểu mảng” (41)
      • 2.2.4 Hệ thống bài tập “Kiểu xâu” (51)
      • 2.2.5 Hệ thống bài tập “Kiểu tệp” (58)
  • TÀI LIỆU THAM KHẢO (71)

Nội dung

LỜI CẢM ƠN Sau một thời gian dài nghiên cứu, cố gắng để học tập và làm việc một cách nghiêm túc, em đã hoàn thành bài khóa luận với đề tài “Xây dựng hệ thống bài tập trong dạy học lập tr

CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN CỦA ĐỀ TÀI

Lí luận về bài toán Toán học

1.1.1 Bài toán và lời giải của bài toán

Theo G.POLYA Bài toán là việc đặt ra sự cần thiết tìm kiếm một cách có ý thức các phương tiện thích hợp để đạt đến một mục đích nhất định trông thấy rõ ràng, nhưng không thể đạt được ngay

Trên cơ sở định nghĩa khái quát của G.POLYA cho ta thấy rằng: Bài toán là sự đòi hỏi phải đạt tới mục đích nào đó Như vậy, bài toán có thể đồng nhất với một số quan niệm khác nhau về bài toán như đề toán, bài tập, Trong định nghĩa về bài toán ở trên ta thấy có hai yếu tố chính hợp thành của một bài toán:

- Bài toán luôn có mục đích xác định

- Sự đòi hỏi người khác thực hiện mục đích của bài toán (giao nhiệm vụ hoặc yêu cầu người khác thực hiện mục đích của bài toán)

Ví dụ 1: “Số tự nhiên n  N và n < 10.”

- Đây không phải là bài toán vì thiếu sự đòi hỏi người khác thực hiện mục đích

- Đây không phải là mệnh đề toán học vì không có giá trị chân lý đúng hay sai

- Đây là một hàm mệnh đề vì đó là câu có chứa biến số n và khi thay biến bởi hằng ta được mệnh đề

Ví dụ 2: “Tìm n  N và n < 10.” Đây là bài toán vì trong đó bao gồm hai yếu tố cơ bản

- Sự đòi hỏi của bài toán thể hiện qua cụm từ “tìm”

- Mục đích của bài toán thể hiện “n  N và n < 10.”

Lời giải của bài toán được hiểu là tập hợp hữu hạn, sắp thứ tự các thao tác cần thực hiện để đạt tới mục đích đã đặt ra trong bài toán

Như vậy ta thống nhất các thuật ngữ bài giải, cách giải và đáp án của bài toán đều theo nghĩa lời giải ở trên

Một bài toán có thể có lời giải như sau

Giải được một bài toán được hiểu là tìm ra và trình bày đúng ít nhất một lời giải của bài toán trong trường hợp bài toán có lời giải, hoặc lý giải được bài toán là không giải được trong trường hợp nó không có lời giải

Ví dụ 1: Tìm các lời giải của bài toán cổ sau

Tính số gà, số chó?”

Cách giải: Giả thiết tạm

Giả sử tất cả 36 con vật đều là gà

Vậy số chân của 36 con vật là

Tổng số chân hụt đi so với điều kiện thực tế của bài toán là

Ta thấy 28 chân thiếu hụt so với điều kiện thực của bài toán là do ta giả sử tất cả 36 con vật đều là gà Như vậy, ta đã bỏ đi ở mỗi con chó là 2 chân Vậy số con chó là 28 : 2 = 14 (con chó)

Số con gà là 36 – 14 = 22 (con gà) Đáp số: Số gà là 22 con; số chó là 14 con

1.1.2 Phương pháp tìm lời giải bài toán Toán học

Bốn bước giải toán của G.POLYA

Trước khi giải một bài toán ta phải phân tích nội dung của bài toán, rồi tìm hiểu thấu đáo nội dung của bài toán bằng những câu hỏi sau:

- Những cái gì đã biết? Cái gì chưa biết của bài toán?

- Tìm những yếu tố cố định, những yếu tố không đổi, những yếu tố thay đổi và biến thiên của bài toán

- Xác định các ẩn và các giá trị hằng của bài toán

- Dữ kiện của bài toán có đủ để xác định cái chưa biết hay không?

Bước 2 Xây dựng chương trình giải Để tìm được lời giải cho bài toán một cách có hiệu quả thì bước xây dựng chương trình giải là bước quyết định, đồng thời đây cũng là bước khó khăn nhất

Bước xây dựng chương trình giải đòi hỏi chúng ta biết huy động các kiến thức đã biết để xem xét, phân tích, so sánh, bác bỏ, tổng hợp Từ đó mới có thể thiết lập được mối liên hệ giữa cái đã cho và cái cần tìm

Trả lời một số câu hỏi:

– Bạn đã gặp bài toán nào tương tự thế này chưa? Hay ở một dạng hơi khác?

– Bạn có biết một định lý, một bài toán liên quan đến bài toán này không?

– Hãy xét kỹ cái chưa biết, và thử nhớ xem có bài toán nào có cùng cái chưa biết không?

– Hãy xét kỹ các khái niệm có trong bài toán và nếu cần hãy quay về các định nghĩa

– Đây là bài toán mà bạn đã có lần giải nó rồi, bạn có thể áp dụng được gì ở nó? Phương pháp? Kết quả? Hay phải đưa thêm yếu tố phụ vào mới áp dụng được?

– Nếu bạn chưa giải được bài toán này, hãy thử giải một bài toán phụ dễ hơn có liên quan, một trường hợp riêng, tương tự, tổng quát hơn? Hãy giữ lại một phần giả thiết khi đó ẩn được xác định đến chừng mực nào? Từ các điều đó bạn có thể rút ra được điều gì có ích cho việc giải bài toán? Với giả thiết nào thì bạn có thể giải được bài toán này?

– Bạn đã tận dụng hết giả thiết của bài toán chưa?

Bước 3 Thực hiện chương trình giải

Thực hiện lời giải mà bạn đã đề ra Bạn có nghĩ rằng các bước là đúng? Bạn có thể chứng minh nó đúng? Đây là quá trình tổng hợp lại của bước xây dựng chương trình giải, ta dùng các phép suy luận hợp logic xuất phát từ giả thiết của bài toán hay các mệnh đề Toán học đã biết ta suy dần ra đi tới kết luận của bài toán

Trong bước thực hiện chương trình giải một bài toán cần chú ý phân biệt sự khác nhau giữa những điều đã thấy được và những điều suy ra được - chính là điều chứng minh được

Bước 4 Kiểm tra lời giải và khai thác bài toán

Bạn có nghĩ ra một hướng khác để giải bài toán? Lời giải có ngắn hơn, đặc sắc hơn

Bạn đã áp dụng cách giải đó cho bài toán nào chưa?

Bạn có thể áp dụng bài toán này để giải các bài toán khác đã biết?

Lí luận về bài toán Tin học

- Bài toán là những việc nào đó ta muốn máy tính thực hiện

- Tìm hiểu nội dung bài toán: Khi dùng máy tính giải toán cần quan tâm Input và Output

Input : Thông tin nào đưa vào máy tính

Output : Thông tin đưa ra từ máy tính

Ví dụ 1: Tìm ước số chung lớn nhất của 2 số tự nhiên M, N

Input : Cho 2 số tự nhiên M, M

Output: Một số UC là ước số chung lớn nhất của 2 số M và N

Ví dụ 2: Kiểm tra 1 số tự nhiên N có phải là nguyên tố ?

Input : Cho số tự nhiên N

Output: Số N là nguyên tố hay không là số nguyên tố

1.2.2 Phương pháp tìm thuật giải bài toán Tin học:

Bước 1: Tìm hiểu nội dung bài toán

(Dữ liệu vào → Xử lý → Kết quả ra) Tìm hiểu nội dung bài toán hay nói chính xác hơn là ta đi xác định xem ta phải giải quyết vấn đề gì, với giả thiết nào đã cho và lời giải cần phải đạt những yêu cầu gì?

Mỗi bài toán được đặc tả bởi hai thành phần: Input và Output Việc xác định bài toán chính là xác định từ hai thành phần này và mối quan hệ giữa chúng Các thông tin đó cần được nghiên cứu cẩn thận để có thể lựa chọn thuật toán, cách thể hiện các đại lượng đã cho, các đại lượng phát sinh trong quá trình giải bài toán và NNLT thích hợp

Tạo mảng A gồm n (n ≤ 100) số nguyên, mỗi số có trị tuyệt đối không vượt quá 300 Tính tổng các phần tử của mảng là bội số của một số nguyên k cho trước Đối với bài toán này, GV cần hướng dẫn HS xác định được Input, Output của bài toán, cách thể hiện các đại lượng đã cho, các đại lượng phát sinh trong quá trình giải bài toán như sau:

- Input: Mảng A gồm n phần tử là các số nguyên

- Output: Tổng các phần tử của mảng chia hết cho số k

- Thể hiện các đại lượng đã cho:

+ Vì n là số phần tử của mảng A và n ≤ 100 nên ta khai báo kiểu dữ liệu của n là Byte

+ Mỗi phần tử của mảng là kiểu số nguyên và có giá trị tuyệt đối không vượt quá 300 vì vậy ta khai báo kiểu dữ liệu của mảng là Integer

- Các đại lượng phát sinh

+ Để tham chiếu đến từng phần tử của mảng cần khai báo thêm biến i + Để tính tổng các phần tử của mảng là bội số của một số nguyên k cho trước ta khai báo biến Tong kiểu Integer và phải gán giá trị ban đầu (bằng 0) trước khi sử dụng biến Tong

Bước 2: Xây dựng thuật giải

Thuật toán là một hệ thống chặt chẽ và rõ ràng các quy tắc nhằm xác định một dãy thao tác trên cấu trúc dữ liệu sao cho: Với một bộ dữ liệu vào, sau một số hữu hạn bước thực hiện thao tác, ta đạt được mục tiêu đã định

Dựa vào các thông tin đó xác định được về bài toán để lựa chọn hoặc thiết kế thuật toán, đây là bước quan trọng nhất để giải một bài toán Ở bước này ta có thể hướng dẫn hoặc yêu cầu HS viết thuật giải bằng sơ đồ khối hoặc ngôn ngữ phỏng trình Tức là xây dựng dãy các tác động để cho máy tính có thể thực hiện trong một khoảng thời gian nhất định nhằm đạt được một kết quả xác định Cũng có thể cho HS biết được nhiều thuật giải giải quyết cùng một bài toán, sau đó yêu cầu HS chọn xem trong số các thuật giải đó thuật giải nào tốt nhất

Ví dụ 4: Nhập vào từ bàn phím một xâu Thay thế tất cả các cụm kí tự “anh” bằng cụm kí tự "em" Đối với bài toán này HS có thể xây dựng thuật giải bằng ngôn ngữ mô phỏng chương trình như sau:

KHI vị trí xâu con “anh” trong xâu s khác 0

- Tìm vị trí bắt đầu của xâu “anh”

- Xóa xâu “anh” vừa tìm thấy

- Chèn xâu “em” vào xâu s tại vị trí trước xuất hiện xâu “anh”

Bước 3: Thực hiện xây dựng chương trình

Xây dựng chương trình hay cũng được gọi là lập trình Lập trình là dùng một ngôn ngữ máy tính cụ thể để diễn tả thuật toán, cấu trúc dữ liệu thành các câu lệnh để máy tính có thể thực hiện được và giải quyết đúng bài toán mà người lập trình mong muốn Ở bước này GV có thể yêu cầu HS xây dựng chương trình bằng cách tinh chế từng bước, đây là phương pháp có hệ thống giúp HS phân tích các thuật toán và cơ sở dữ liệu để từ đó viết thành chương trình

Ban đầu chương trình được viết bằng những câu lời tự nhiên thể hiện sự phân tích tổng thể Ở từng bước sau các câu lời được phân tích chi tiết hơn thành những câu lời khác tương ứng với sự phân tích công việc thành những công việc nhỏ hơn Mỗi câu lời đó là sự đặc tả công việc Sự tinh chế được hướng về phía NNLT mà ta sẽ dựng nghĩa là càng ở những bước sau các câu lời tự nhiên càng được thay bằng các câu lời của NNLT

- Ban đầu, chương trình được thể hiện bằng ngôn ngữ tự nhiên, thể hiện thuật toán với các bước tổng thể, mỗi bước nêu lên một công việc phải thực hiện

- Một công việc đơn giản hoặc là một thuật toán cơ sở đã biết thì ta tiến hành viết mã lệnh ngay bằng NNLT

- Một công việc phức tạp thì ta lại chia ra thành những công việc nhỏ hơn để lại tiếp tục với những công việc nhỏ hơn đó

Phương pháp tinh chế từng bước là một thể hiện của tư duy giải quyết

11 vấn đề từ trên xuống, giúp cho người lập trình có được một định hướng thể hiện trong phong cách viết chương trình Tránh việc mò mẫm, xoá đi viết lại nhiều lần, biến chương trình thành tờ giấy nháp

Làm mịn ngôn ngữ mô phỏng từ ví dụ 4 :

Cú pháp nhập một xâu từ bàn phím: read/readln(S);

+ Hàm tìm vị trí: POS(„anh‟,S)

 KHI vị trí xâu con “anh” trong xâu S khác 0:

 Tìm vị trí bắt đầu của xâu “anh”: vt:= While POS(„anh‟,S);

+ Thủ tục Delete(S,k,n): Xoá n kí tự trong xâu S bắt đầu từ vị trí k

Xóa xâu “anh” vừa tìm thấy: Delete(s, vt, 3);

+ Thủ tục Insert(s1,s2,k): chèn xâu s1 vào xâu s2 bắt đầu từ vị trí k

Chèn xâu “em” vào xâu s tại vị trí trước xuất hiện xâu “anh”:

+ In xâu: Cú pháp: write/writeln(S);

Chương trình hoàn chỉnh như sau:

Write (' Moi nhap mot xau: ' );

While Pos ('anh' , s)0 do Begin vt:= Pos ('anh' , s);

Bước 4: Thực hiện chương trình (chạy chương trình) Để tạo điều kiện vận dụng tri thức khoa học Tin học vào thực tế cần tránh tình trạng HS chỉ dừng lại ở phương hướng xây dựng giải thuật mà không trực tiếp sử dụng các NNLT để mã hóa và thực hành kiểm thử lại chương trình trên máy Tình trạng này sẽ có tác hại không nhỏ đối với HS trong học tập hiện tại cũng như trong cuộc sống sau này (VD: thói quen làm việc nửa vời, mang tính lí thuyết nhiều hơn, làm việc không suy tính đến các kết quả có thể xảy ra sau này, …)

Một chương trình viết xong chưa chắc nó chạy được trên máy tính; kĩ năng tìm lỗi sửa lỗi, điều chỉnh viết lại chương trình cũng là một kĩ năng quan trọng trong lập trình

Khi chương trình không chạy được hoặc chạy cho kết quả sai là có lỗi về thuật toán hoặc lỗi trình tự hoặc lỗi có pháp Học sinh cần phát hiện được và sửa được các lỗi để có chương trình chạy đúng Trong bước này GV nên yêu cầu HS xây dựng các bộ test nhằm kiểm tra tính đúng đắn của chương trình, theo dõi và đánh giá chương trình của HS.

Đặc điểm năng lực nhận thức và năng lực lập trình của HS ở THPT

Lứa tuổi học sinh ở trường THPT là thời kì các em đạt được sự trưởng thành về mặt thể lực, về hệ thần kinh, tạo điều kiện cho sự phát triển hoạt động phân tích, tổng hợp của HS

Nội dung và tính chất hoạt động học tập của học sinh có tính năng động và độc lập ở mức cao hơn, yêu cầu có sự phát triển tư duy lý luận Các em có vốn kinh nghiệm sống rất phong phú, thái độ ý thức đối với học tập ngày càng phát triển, hứng thú học tập gắn liền với khuynh hướng nghề nghiệp

Lứa tuổi HS cấp THPT tính chủ định phát triển mạnh ở tất cả các quá trình nhận thức, tri giác có mục đích đạt tới mức độ cao Quan sát trở nên có

13 mục đích, có hệ thống toàn diện hơn Tuy nhiên, quan sát của HS khó có hiệu quả nếu thiếu sự chỉ đạo của GV

Sự ghi nhớ có chủ định giữ vai trò chủ đạo trong hoạt động trí tuệ, vai trò của ghi nhớ logic trừu tượng, ghi nhớ ý nghĩa ngày một tăng lên rõ rệt

Nắm được quy trình thao tác thực hành nhằm đạt được mục đích, điều cơ bản HS thông hiểu kĩ năng, ghi nhớ và áp dụng lý thuyết, thực hiện các thao tác hành động gần như hoàn thiện

Tuy nhiên ở lứa tuổi HS cấp THPT chưa phát huy hết năng lực độc lập suy nghĩ của bản thân, nhiều lúc cũng kết luận vội vàng, Vì vậy việc giúp các em phát triển khả năng nhận thức là một nhiệm vụ quan trọng của GV khi thực hiện giảng dạy kiến thức trên lớp.

Phân loại, vị trí và ý nghĩa của bài tập Tin học

Phân loại bài tập theo yêu cầu luyện tập kĩ năng, phát triển tư duy trong quá trình dạy học

- Bài tập luyện tập: Loại bài tập dùng để rèn luyện cho học sinh áp dụng được những kiến thức xác định để giải từng bài tập theo mẫu xác định Ở đó không đòi hỏi học sinh phải tư duy sáng tạo mà chủ yếu để cho học sinh luyện tập, có kĩ năng giải đối với một loại bài tập đã được chỉ dẫn

- Bài tập sáng tạo: Loại bài tập áp dụng tổng hợp nhiều kiến thức để giải các bài tập đòi hỏi phát triển tư duy sáng tạo của học sinh

Trong thực tế dạy học hiện nay, giáo viên có thể sử dụng bài tập ở bất cứ lúc nào, bất cứ nơi nào khi thấy nó có thể giúp mình thỏa mãn nhiệm vụ dạy học và mục đích dạy học

Bài tập tin học không phải là nội dung tri thức mới của Tin học nhưng nó chứa đựng nội dung dạy học Bài tập phải phù hợp với nội dung dạy học, với năng lực nhận thức của học sinh và phải phục vụ được ý đồ của giáo viên Khi ra một bài tập phải xác định đúng vị trí của nó để bài tập trở thành một bộ phận hữu cơ của hệ thống kiến thức cần truyền thụ

- Về kiến thức, kĩ năng:

+ Làm cho học sinh hiểu chính xác và biết vận dụng các khái niệm đã học + Thúc đẩy việc rèn luyện các kỹ năng, kỹ xảo cần thiết về Tin học

+ Có tác dụng hệ thống hóa các kiến thức đã học

+ Tạo điều kiện phát triển tư duy vì khi giải những bài tập, học sinh phải sử dụng các thao tác tư duy như: phân tích, tổng hợp, so sánh, quy nạp,

+ Giáo dục đạo đức tư tưởng vì khi giải những bài tập Tin học, HS sẽ rèn luyện những phẩm chất tốt của con người như: tính kiên nhẫn, chịu khó, chính xác khoa học, tính trung thực, tính sáng tạo và lòng yêu thích bộ môn.

Biện pháp sƣ phạm khi dạy học bài tập lập trình Tin học

1.5.1 Thông hiểu các thuật toán cơ bản Ở phương diện thuật giải, khi tìm thuật toán giải bài toán lập trình là tìm cách đưa bài toán cần giải về áp dụng các thuật toán cơ sở đã biết nào đó Như vậy, yêu cầu HS phải thông hiểu một số thuật toán cơ sở trong lập trinh Tin học ở lớp 11

Trong dạy học từng thuật toán cơ sở cần chú ý tuân thủ các bước sau:

- Xác định Input và Output của bài toán

- Nêu ý tưởng chung thuật toán

- Trình bày thuật toán bằng lời nói với ngôn ngữ thông thường

- Test thuật toán: Đưa ra bộ dữ liệu cụ thể để phân tích tìm giá trị các biến thay đổi thế nào qua từng dòng lệnh, qua từng đoạn chương trình

Hệ thống thuật toán cơ sở ở lớp 11:

- Thuật toán hoán đổi giá trị của hai số

- Thuật toán kiểm tra số nguyên tố

- Thuật toán tính tổng các chữ số của một số nguyên

- Thuật toán Euclide tìm UCLN

- Thuật toán tìm Max, Min của một dãy số

- Các thuật toán sắp xếp: Sắp xếp nổi bọt; Sắp xếp chèn; Sắp xếp chọn

- Các thuật toán tìm kiếm: Tìm kiếm tuần tự; Tìm kiếm nhị phân

Thực tế, đa phần các em HS sau khi học chương trình Tin học 11 đều rất bỡ ngỡ và yếu khi xây dựng thuật toán cho các bài toán Việc nắm vững giả thiết, kết luận và cách giải một bài toán cơ sở rất quan trọng trong việc nhận dạng, mở rộng phạm vi bài toán từ đó HS xác định, xây dựng được cách giải các bài toán cùng dạng hoặc mở rộng Cũng từ đó khuyến khích khả năng tự học, tự nghiên cứu của HS

1.5.2 Phân tích tìm thuật toán giải bài toán

Từ bộ dữ liệu cụ thể được chọn là bộ dữ liệu đưa vào trong máy tính điện tử để giải bài toán, HS biết phân tích trên bộ dữ liệu đó tìm ra thuật toán để giải bài toán đó

→ Đây là bước khó khăn nhất nhưng quan trọng nhất của quá trình giải một bài toán Tin học, vì các bài toán có thể không có thuật Algorithm (không phải các dạng thuật toán có sẵn, không theo một trình tự nào), HS phải tự phân tích theo từng bước để có thể khái quát thành một thuật toán cho riêng mình

Tiếp theo mô tả thuật toán giải bài toán bằng sơ đồ khối hoặc bằng phương pháp liệt kê từng bước Tức là xây dựng dãy các tác động để cho máy tính có thể thực hiện Từ đó mã hóa chương trình theo thuật toán tìm được

1.5.3 Lập trình và test chương trình với bộ dữ liệu cũ

- Mã hóa thuật toán đã có bằng NNLT cụ thể

- Kiểm thử lại chương trình với bộ dữ liệu ban đầu

- Xây dựng các bộ test:

+ Bắt đầu với một bộ test nhỏ, đơn giản, làm bằng tay cũng có được đáp số để so sánh với kết quả chương trình chạy ra

+ Tiếp theo vẫn là các bộ test nhỏ, nhưng chứa các giá trị đặc biệt hoặc tầm thường Kinh nghiệm cho thấy đây là những test dễ sai nhất

+ Các bộ test phải đa dạng, tránh sự lặp đi lặp lại các bộ test tương tự

Có một vài test lớn chỉ để kiểm tra tính chịu đựng của chương trình mà

16 thôi Kết quả có đúng hay không thì trong đa số trường hợp, ta không thể kiểm chứng được với test này

Thử lại kết quả của bài toán, thử lại các lập luận trong lời giải đã tìm được của bài toán

Tìm các cách giải khác nếu có của bài toán

Nghiên cứu bài toán liên quan: Bài toán tương tự, bài toán khái quát, …

Ví dụ: Nhập vào một số nguyên dương N từ bàn phím Đưa ra số nguyên nhỏ nhất mà lớn hơn N từ việc hoán vị các chữ số có trong N

- Giả sử số N = 326541 nhập từ bàn phím, số phải tìm được là 341256

- Phân tích: Số cần tìm phải lớn hơn số hiện tại, nghĩa là khi ta hoán vị các chữ số, số sinh ra vừa đủ lớn hơn theo nghĩa không thể có một số nào nữa được tạo ra chen giữa khi chúng sắp thứ tự

+ Xét 4 chữ số cuối cùng, ta thấy chúng được xếp giảm dần, có nghĩa là cho dù ta có hoán vị 4 phần tử này thế nào, ta cũng được một số bé hơn số N + Như vậy ta phải xét đến chữ số thứ 2, thay nó bằng một giá trị khác:

 Không thể là 1 bởi nếu vậy sẽ được số nhỏ hơn (316542)

 Không thể là 3 vì đã có chữ số thứ nhất bằng 3 rồi

 Còn lại các giá trị 4, 5, 6 Vì cần một số mới vừa đủ lớn hơn số N nên ta chọn chữ số thứ hai là 4

+ Còn các chữ số thứ 3, 4, 5, 6 sẽ lấy trong tập {2, 6, 5, 1} Cũng vì tính vừa đủ lớn nên ta sẽ tìm biểu diễn nhỏ nhất của 4 số này, gán cho lần lượt chữ số thứ 3, 4, 5, 6 tức là (1, 2, 5, 6)

+ Vậy số cần tìm sẽ là 341256

- Từ ý tưởng bài toán, ta xây dựng thuật toán như sau:

(Dùng xâu kí tự S biểu diễn số nguyên dương N)

Xác định đoạn cuối giảm dần dài nhất, tìm chỉ số i của phần tử s[i] đứng liền trước đoạn cuối đó Điều này đồng nghĩa với việc tìm từ vị trí sát cuối dãy lên đầu, gặp chỉ số i đầu tiên thỏa mãn s[i] < s[i+1]

+ Nếu tìm thấy chỉ số i như trên:

 Trong đoạn cuối giảm dần, tìm phần tử s[k] nhỏ nhất thỏa mãn điều kiện s[k] > s[i] Do đoạn cuối giảm dần, điều này thực hiện bằng cách tìm từ cuối dãy lên đâu gặp chỉ số k đầu tiên thỏa mãn s[k] > s[i]

 Lật ngược thứ tự đoạn cuối giảm dần (s[i+1] đến s[k]) thành tăng dần + Nếu không tìm thấy tức là số N đã là số lớn nhất, không tìm được số thỏa mãn

Var l, i, j, k, a, b: integer; tam : char; s: string;

Clrscr; write('Nhap so N = '); Readln(s); l := length(s); i := l - 1; while (i > 0) and (s[i] > s[i+1]) do i := i-1;

If i = 0 then writeln('Da la so lon nhat')

Begin k := l; {s[k] la phan tu cuoi day} while s[k] < s[i] do k := k-1;

{Lui dan k de tim gap s[k] dau tien lon hon s[i]} tam := s[k]; s[k] := s[i];

{Lat nguoc doan cuoi giam dan} while a < b do begin tam := s[a]; s[a] := s[b]; s[b] := tam; a := a+1; b := b-1; end; write('So can tim la ',s);

- Test chương trình với dữ liệu cũ N = 326541

+ Tìm được k = 5, đổi chỗ giá trị thứ 2 với thứ 5, ta được: 346521 + Đảo ngược vị trí từ cuối về vị trí thứ 3: a = 3, b = 6;

XÂY DỰNG HỆ THỐNG BÀI TẬP DẠY HỌC KĨ NĂNG LẬP TRÌNH PASCAL CHO HỌC SINH LỚP 11 TRƯỜNG THPT

Tổng quan các bài tập lập trình Tin học 11 THPT

2.1.1 Nội dung chương trình các bài tập lập trình

Chương trình Tin học lớp 11 THPT bao gồm các bài tập gắn với các bài học theo chủ đề chính sau:

Bài 1: Cấu trúc rẽ nhánh

- Lặp với số lần biết trước và câu lệnh for - to - do

- Lặp với số lần chưa biết trước và câu lệnh while - do

- Các thao tác xử lí xâu

Bài 6: Kiểu dữ liệu tệp

- Các thao tác với tệp

- Khái niệm về chương trình con

- Phân loại và cấu trúc chương trình con

2.1.2 Một số nguyên tắc xây dựng hệ thống bài tập nhằm củng cố kiến thức và phát triển tƣ duy sáng tạo

Hệ thống bài tập phải góp phần thực hiện mục tiêu môn học

Bài tập là phương tiện để tổ chức các hoạt động của học sinh nhằm khắc sâu, vận dụng và phát triển hệ thống kiến thức lí thuyết đã học, hình thành và rèn luyện các kĩ năng cơ bản

Mục tiêu của tin học ở trường THPT (đối với ban cơ bản) là cung cấp cho HS hệ thống kiến thức, kĩ năng phổ thông cơ bản về môn tin học; các dịch vụ có sẵn (thiết bị, phần mềm) để thực hiện các công việc thông dụng, tạo ra các sản phẩm đơn giản để phục vụ học tập và đời sống; rèn luyện kỹ năng giải quyết vấn đề khi giải quyết vấn đề có sự trợ giúp của máy tính, có khả năng chuyển giao thuật toán cho máy tính thực hiện thông qua ngôn ngữ lập trình Pascal

Hệ thống bài tập cần phải bám sát nội dung bài học

Hệ thống bài tập ở đây luôn bám sát nội dung chương trình của môn học, phải đảm bảo được mức độ kiến thức của HS khi học xong chương trình

Nguyên tắc này thể hiện ở chỗ các bài tập không những phải tuân thủ nội dung chương trình của môn học mà còn phải đảm bảo sự phù hợp về kiến thức trong chương trình

Căn cứ vào mục tiêu của chương, bài và từng nội dung trong bài để xây dựng, lựa chọn bài tập cho phù hợp với mục tiêu đó

Hệ thống bài tập phải đảm bảo tính sư phạm

Các kiến thức bên ngoài khi đưa vào làm bài tập đều phải qua khâu xử lí sư phạm để phù hợp với phương pháp giảng dạy và thúc đẩy khả năng tiếp thu của HS

Nội dung các bài tập phải đảm bảo tính chính xác, khoa học

Khi xây dựng nội dung của bài tập phải có sự chính xác về kiến thức tin học, bài tập, cho đủ các điều kiện, không được dư hay thiếu Các bài tập không được mắc sai lầm về mặt thiếu chính xác trong các diễn đạt, nội dung

22 thiếu logic chặt chẽ Vì vậy giáo viên khi ra bài tập cần nói, viết một cách logic chính xác và đảm bảo tính khoa học về mặt ngôn ngữ Tin học

Hệ thống bài tập phải đảm bảo tính đa dạng, tính hệ thống

Hệ thống là tập hợp nhiều yếu tố, đơn vị cùng loại hoặc cùng chức năng, có quan hệ hoặc liên hệ chặt chẽ làm thành một thể thống nhất

Các bài tập được sắp xếp theo từng dạng bài tập Toàn bộ hệ thống bài tập đều nhằm giúp HS nắm vững kiến thức, hình thành và phát triển hệ thống kĩ năng cơ bản nếu không việc định hướng suy nghĩ, mục tiêu bài học sẽ không thể đạt được

Hệ thống bài tập phải đảm bảo tính vừa sức

Tính vừa sức ở đây thể hiện cụ thể như sau: hệ thống bài tập đưa ra phải phù hợp với hiểu biết về tri thức cũng như trình độ khả năng nhận thức của HS

Hệ thống bài tập phải xây dựng từ dễ đến khó, từ đơn giản đến phức tạp Đầu tiên là những bài tập vận dụng theo mức đơn giản, sau đó là những bài tập phức tạp hơn, sau đó đòi hỏi các dạng bài tập vận dụng, sáng tạo Từng chương, từng bài, mức độ khó tăng dần theo trình độ phát triển của HS

Nếu bài tập quá khó HS sẽ không đủ sức để giải quyết yêu cầu của bài tập Tuy nhiên bài tập quá dễ sẽ không phát huy được tính sáng tạo của HS

Hệ thống bài tập phải củng cố kiến thức cho HS

Sự nắm vững kiến thức có thể phân biệt ở ba mức độ: biết, hiểu, vận dụng HS nắm vững kiến thức tin học một cách chính xác khi họ được hình thành kĩ năng, kĩ xảo vận dụng và chiếm lĩnh kiến thức thông qua nhiều dạng bài tập khác nhau

Hệ thống bài tập phải phát huy tính tích cực nhận thức, năng lực vận dụng sáng tạo của HS

Tùy theo trình độ HS mà xây dựng hệ thống bài tập cho phù hợp với khả năng của HS Bài tập từ dễ đến khó, nếu thấy HS đã đạt đến mức độ dễ thì nâng dần lên mức độ cao hơn.

Xây dựng hệ thống bài tập dạy học lập trình Pascal ở lớp 11 trường

2.2 Xây dựng hệ thống bài tập dạy học lập trình Pascal 11 trường THPT 2.2.1 Hệ thống bài tập “Cấu trúc rẽ nhánh”

Kiến thức trọng tâm giáo viên cần truyền tải tới học sinh:

- Câu lệnh dạng thiếu: IF THEN ; Điều kiện sẽ được tính và kiểm tra Nếu điều kiện đúng (có giá trị true) thì câu lệnh sẽ được thực hiện, ngược lại thì câu lệnh sẽ bị bỏ qua

- Câu lệnh dạng đủ: IF THEN

ELSE ; Điều kiện sẽ được tính và kiểm tra Nếu điều kiện đúng (có giá trị true) thì câu lệnh 1 sẽ được thực hiện, ngược lại thì câu lệnh 2 sẽ được thực hiện

Ví dụ 1: Tìm nghiệm của phương trình bậc hai

Từ bài toán này, HS có thể vận dụng câu lệnh If – then Đồng thời học sinh nhớ lại cách giải bài toán giải phương trình bậc hai Từ kiến thức các em được học trong toán học các em dễ dàng vận dụng nó trong lập trình Phương trình bậc hai vô nghiệm khi delta (b 2 - 4ac) < 0, ngược lại thì phương trình có nghiệm

Input: Các hệ số a, b, c nhập từ bàn phím

Output: Đưa ra các nghiệm của phương trình hoặc thông báo “Phuong trinh vo nghiem”

If D < 0 then writeln(„Phuong trinh vo nghiem.‟) Else

- Phân tích chương trình với a = 1, b = - 5, c = 4

+ D = 9 > 0, phương trình có 2 nghiệm là: x1 = 1; x2 = 4;

Ví dụ 2: Tìm số ngày của năm N, biết rằng năm nhuận là năm chia hết cho

400 hoặc chia hết cho 4 nhưng không chia hết cho 100 Ví dụ năm 2000, 2004 là năm nhuận và có số ngày là 366, các năm 1900, 1945 không phải là năm nhuận và có số ngày là 365

Input: Số tự nhiên N nhập từ bàn phím

Output: Đưa ra số ngày của năm N ra màn hình

If (N mod 400 = 0) or ((N mod 4 = 0) and (N mod 100 0)) then SN:= 366 Else SN:= 365;

Writeln(„ So ngay cua nam „, N,‟ la „, SN);

Bài 1: Cho ba số nguyên p, q, r bất kì khác 0 (với p, q, r được nhập vào từ bàn phím) Viết chương trình kiểm tra ba số này, theo thứ tự nhập vào có tạo thành một cấp số nhân hay không

Output: Kết luận 3 số có tạo thành cấp số nhân hay không

+ Trong một cấp số nhân, bình phương của mỗi số hạng (trừ số hạng đầu và cuối) đều là tích của hai số hạng đứng kề với nó, nghĩa là u k 2  u k  1 u k  1 với k ≥ 2

+ Điều kiện của câu lệnh If - then là SQRT(q)=p.r thì ba số tạo thành một cấp số nhân

Writeln(„3 so ‟,p ,‟ ,‟, q, ‟ ,‟, r, ‟lap thanh mot cap so nhân ‟);

Writeln(„3 so ‟, p,‟ ,‟, q,‟ ,‟, r, ‟khong lap thanh mot cap so nhân‟);

Bài 2: Giải hệ phương trình bậc nhất

Input: Các hệ số a, b, c, a‟, b‟, c‟ nhập từ bàn phím

Output: Đưa ra các nghiệm của hệ phương trình hoặc thông báo “He phuong trinh vo nghiem” hoặc “He phuong trinh vo đinh”

+ Kiểm tra Nếu D 0 kết luân nghiệm hệ là Dx/D và Dy/D

Nếu D = 0 , Nếu Dx = Dy = 0 kết luận hệ vô định

Trái lại kết luận hệ vô nghiệm

- Chương trình: HS tự hoàn thiện

Bài 3: Cho 3 số thực a, b, c Hãy tìm giá trị lớn nhất, bé nhất trong 3 số

Input: Các số thực a, b, c nhập từ bàn phím

Output: Đưa ra giá trị Max, Min của 3 số

+ Gán cho biến Max = a (Min = a);

+ Kiểm tra Nếu Max < b (Min > b) thì gán Max = b (Min = b);

+ Kiểm tra Nếu Max < c (Min > c)thì gán Max = c (Min = c);

Write('Gia tri lon nhat la ', Max:3:1);

Bài 4: Cho ba số a, b, c nguyên Hãy viết chương trình sắp xếp và in lên màn hình ba số đã được sắp xếp thứ từ từ bé đến lớn

Input: Ba số nguyên a, b, c nhập từ bàn phím

Output: Các số được sắp thức tự tăng dần

+ Tìm số bé nhất trong 3 số, chuyển vào a

+ Tìm số bé nhất trong 2 số còn lại, chuyển vào b

+ Số còn lại là số lớn nhất

- Chương trình: HS tự hoàn thiện

Bài 5: Viết chương trình nhập từ bàn phím 3 số thực a, b, c Kiểm tra xem 3 số vừa nhập có phải là độ dài 3 cạnh của tam giác, nếu đúng là 3 cạnh của tam giác hãy kiểm tra xem đó có phải là tam giác vuông hay không?

Input: 3 số thực a, b, c nhập từ bàn phím

Output: Đưa ra kết luận xem đó có phải tam giác hay không và nếu có thì nó là tam giác gì?

+ Kiểm tra xem tổng 2 cạnh có lớn hơn cạnh còn lại hay không, nếu đúng thì kết luận là 3 cạnh tam giác

+ So sánh tổng bình phương 2 cạnh với cạnh còn lại, nếu bằng nhau thì đó là tam giác vuông

- Chương trình: HS tự hoàn thiện

Bài 6: Trong mặt phẳng cho biết tọa độ 3 điểm A, B, C Hãy xét xem 3 điểm đó có tạo thành tam giác cân hay không?

Input: Các cặp số thực (x1; y1), (x2; y2), (x3; y3) nhập từ bàn phím Output: Đưa ra kết luận tam giác cân hay không

+ Tính độ dài 3 cạnh theo công thức khoảng cách

+ So sánh tổng 2 cạnh với cạnh còn lại, nếu lớn hơn thì 3 điểm tạo thành tam giác

+ So sánh từng cặp cạnh với nhau, nếu bằng nhau thì tam giác đó là tam giác cân

- Chương trình: HS tự hoàn thiện

2.2.2 Hệ thống bài tập “Cấu trúc lặp”

Kiến thức trọng tâm giáo viên cần truyền tải tới học sinh:

- Câu lệnh lặp biết trước số lần lặp:

FOR := TO DO ;

Câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối

FOR := DOWNTO DO ;

Câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu

- Câu lệnh lặp chưa biết trước số lần lặp:

WHILE DO ;

Trong khi điều kiện đúng thì câu lệnh được thực hiện, ngược lại bỏ qua

Ví dụ 1: Nhập từ bàn phím hai số nguyên dương M, N (M < N), tính và đưa ra màn hình các số các số chia hết cho 3 hoặc 5 trong phạm vi từ M đến N

Input: Số tự nhiên M, N nhập từ bàn phím

Output: Đưa ra các số các số chia hết cho 3 hoặc 5 trong phạm vi từ M đến N

If (i mod 3 = 0) or (i mod 5 = 0) then write(i :5,„,„);

Ví dụ 2: Tính các tổng sau a) 1 1 1 1 1 1 1 1 1 1

- Đoạn chương trình phần thuật toán:

- Đoạn chương trình phần thuật toán:

- Đoạn chương trình phần thuật toán:

If (i mod 4 = 2) or (i mod 4 = 3) then S:= S – 1/i

- Đoạn chương trình phần thuật toán:

If (i mod 6 = 2) or (i mod 6 = 3) or (i mod 6 = 4) then S:= S – 1/i Else S:= S +1/i ;

Ví dụ 3: Cho dãy số (U n ) biết U 1 = -1; Un+1= Un +3 với n ≥ 1 Viết chương trình in ra 5 số hạng đầu của dãy số

Output: 5 số hạng đầu của dãy số

+ Đề bài đã cho biết số hạng đầu của dãy số và công thức tính U n Ta sẽ dùng vòng lặp For hoặc While để tính số hạng tiếp theo của dãy số thông qua công thức tính U n+1 =Un + 3

+ Đề bài yêu cầu in ra 5 số hạng đầu tiên nên ta dùng vòng For duyệt từ

2 đến 5 vì số hạng đầu đã biết, chỉ tính từ số hạng thứ 2 trở đi

Writeln(„5 so hang dau cua day so la: ‟);

Writeln(„5 so hang dau cua day so la: ‟);

Bài 1: Dãy số (U n ) cho bởi U 1 =3; Un+1= 1  U n 2 ; n ≥ 1 Viết chương trình in ra

5 số hạng đầu của dãy số

Writeln(„5 so hang dau cua day so la: ‟);

Bài 2: Nhập từ bàn phím số nguyên dương N, kiểm tra xem N có phải là số nguyên tố hay không?

Input: Số tự nhiên N nhập từ bàn phím

Output: Đưa ra các số N có phải là số nguyên tố hay không?

Duyệt các số tự nhiên từ 2 tới N

 : Nếu không có số nào trong đó là ước của N thì kết luận N là số nguyên tố; trái lại kết luận N không là số nguyên tố

- Chương trình: HS tự hoàn thiện

Bài 3: Nhập từ bàn phím hai số nguyên dương M, N (M < N), tìm ước số chung lớn nhất của M và N

Input: Số tự nhiên M, N nhập từ bàn phím

Output: Đưa ra số UC là ước số chung lớn nhất của M và N

- Hướng dẫn thuật toán: Thuật toán trừ liên tiếp

+ Lặp khi M  N: Nếu M > N thì gán M:= M – N ; trái lại gán N:=N-M + Khi M = N thì dừng và gán UC:= M;

- Chương trình: HS tự hoàn thiện

- Phân tích chương trình với dữ liệu cụ thể M = 15, N = 25

Mô phỏng thuật toán với M = 15, N = 25

Bài 4: Nhập từ bàn phím hai số nguyên dương M, N (M < N), tìm ước số chung lớn nhất của M và N bằng thuật chia Ơclid

Input: Số tự nhiên M, N nhập từ bàn phím

Output: Đưa ra số UC là ước số chung lớn nhất của M và N

+ Lặp Khi N chi cho M dư r ≠ 0: UC của M & N là UC của M & r , ; + Khi r = 0 thì dừng và gán UC:= M;

- Chương trình: HS tự hoàn thiện

- Phân tích chương trình với dữ liệu cụ thể M = 15, N = 25

Mô phỏng thuật toán với M = 15, N = 25

Bài 5: Dãy số F là Fibonaci nếu: F0 = 1; F1 = 1; FN = FN – 1 + FN – 2 với N  2 Viết chương trình nhập từ bàn phím số nguyên dương N và đưa ra màn hình số hạng thứ N của dãy Fibonaci

Input: Số tự nhiên N nhập từ bàn phím

Output: Đưa ra số Phi-bô-na-xi thứ N

- Chương trình: HS tự hoàn thiện

Bài 6*: Dãy số F là Fibonaci nếu: F 0 = 1; F1 = 1; FN = FN – 1 + FN – 2 với N  2 Viết chương trình nhập từ bàn phím số nguyên dương N và đưa ra màn hình số N có thuộc dãy Fibonaci? Khi nó thuộc dãy Fibonaci thì hãy cho biết số thứ tự của nó

2.2.3 Hệ thống bài tập “Kiểu mảng”

Kiến thức trọng tâm cần truyền tải đến học sinh

Type = Array [] of ;

Var : ;

Var : Array [] of ;

- Tham chiếu đến phần tử thứ i trên mảng:

Ví dụ 1: Cho dãy số gồm N số nguyên a 1 , a2, , aN Viết chương trình tính tổng các số chẵn và tổng các số lẻ của dãy

Input: Số nguyên dương N và dãy N số nguyên a 1 , a2, , aN ;

Output: Tổng của tất cả các số chẵn (Tongch), tổng các số lẻ (Tongle) của dãy số đã cho

+ Cần nhập thông tin của bài toán là số nguyên dương N và dãy N số nguyên a 1 , a2, , aN

+ Khởi tạo biến Tongch, Tongle ban đầu biến Tongch và Tongle đều được gán bằng 0;

+ Cho i lần lượt nhận các giá trị từ 1 đến N, với mỗi giá trị của i thực hiện Nếu A[i] chia hết cho 2 thì Tongch:=Tongch + A[i] còn không trái lại thì Tongle := Tongle + A[i];

+ Cuối cùng xuất các giá trị Tongch và Tongle ra màn hình

Var a: Array[ 1 100] of integer; n, i, tongch, tongle: integer;

Write('nhap N nguyen duong: '); readln(N);

Writeln( ‟ Tong cac so chan la:‟, Tongch);

Writeln(‟Tong cac so le la:', Tongle);

Ví dụ 2: Tìm phần tử lớn nhất của dãy số nguyên

- Xét dãy số: 4 6 4 7 2 9 thì phần tử lớn nhất là 9

Input: Số tự nhiên N (N  250) và dãy N số nguyên A1, A2, AN

Output: Đưa ra chỉ số và giá trị lớn nhất trong dãy đã cho

+ Gán cho biến Max một giá trị nào đó của dãy số đã cho

+ Duyệt từ phần tử đầu của dãy số đến phần tử cuối của dãy số và kiểm tra nếu phần tử lớn hơn Max thì gán cho biến Max giá trị mới là phần tử đó, và lưu chỉ số cs là vị trí của phần tử đó

+ Đưa ra giá trị lớn nhất trong dãy là Max, chỉ số là cs

Write('Nhap so phan tu cua day so,N = ');

Writeln('Gia tri cua phan tu Max: ', Max);

Writeln('Chi so cua phan tu Max: ', csmax);

- Phân tích chương trình với dữ liệu cụ thể: N = 5 và dãy 4 7 2 9 8 i A[i] Max Cs

Mô phỏng thuật toán với N = 5

Vậy Max = 9, chỉ số là 4

Ví dụ 3: Viết chương trình đếm các phần tử nhỏ hơn x trong mảng

Input: Số tự nhiên N (N  250), dãy N số nguyên A1, A2, AN và số x Output: Đưa ra số lượng các phần tử lớn hơn x

+ Duyệt từ phần tử đầu của dãy số đến phần tử cuối của dãy số và kiểm tra nếu phần tử bằng x thì tăng biến d lên 1 đơn vị

Write(' Nhap so phan tu cua day so, N = ');

Write(' Nhap so x can kiem tra, x = ');

- Phân tích thuật toán với dữ liệu cụ thể N = 6, x = 5 và dãy 5 4 7 2 9 5 i A[i] d

Mô phỏng thuật toán với N = 6, x = 5

Bài 1: Tìm phần tử âm lớn nhất của dãy số nguyên nhập từ bàn phím

- Dãy 7 -3 7 -1 2 3 5 thì phần tử âm lớn nhất là -1

Input: Số tự nhiên N (N  250) và dãy N số nguyên A1, A2, AN

Output: Đưa ra giá trị âm lớn nhất trong dãy đã cho

+ Gán cho biến Max một giá trị âm nào đó của dãy số đã cho

+ Duyệt từ phần tử đầu của dãy số đến phần tử cuối của dãy số và kiểm tra nếu phần tử vừa âm và vừa lớn hơn Max thì gán cho biến Max giá trị mới là phần tử đó

Write(' Nhap so phan tu cua day so, N = ');

If Max 0 Then begin for i:= 1 to N do

Write('Max am = ', Max); end

Else write('Khong co so am trong day');

Bài 2: Cho dãy gồm N số nguyên nhập từ bàn phím Viết chương trình sắp xếp mảng số nguyên theo chiều tăng dần các số lẻ

- Dãy: 3 8 2 9 8 4 6 1, ta được dãy sắp xếp:

Input: Số tự nhiên N (N  250), dãy N số nguyên A1, A2, AN

Output: Đưa ra mảng đã sắp xếp tăng dần các số lẻ

Ngày đăng: 30/07/2018, 17:00

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Nguyễn Thị Kiều Duyên (2017), Lý thuyết và Bài tập lập trình Pascal, NXB Giáo dục Sách, tạp chí
Tiêu đề: Lý thuyết và Bài tập lập trình Pascal
Tác giả: Nguyễn Thị Kiều Duyên
Nhà XB: NXB Giáo dục
Năm: 2017
[2]. Nguyễn Văn Dược, Những bài tập xử lý mảng một chiều và xử lý xâu, Sáng kiến kinh nghiệm, Trường THPT Võ Văn Kiệt – Kiên Giang Sách, tạp chí
Tiêu đề: Những bài tập xử lý mảng một chiều và xử lý xâu, Sáng kiến kinh nghiệm
[3]. Hồ Sĩ Đàm, Sách giáo khoa Tin học 11, NXB Giáo dục Sách, tạp chí
Tiêu đề: Sách giáo khoa Tin học 11
Nhà XB: NXB Giáo dục
[4]. Hồ Sĩ Đàm – Nguyễn Thanh Tùng, Bài tập Tin học 11, NXB Giáo dục Sách, tạp chí
Tiêu đề: Bài tập Tin học 11
Nhà XB: NXB Giáo dục
[5]. Lê Minh Hoàng (1999 – 2002), Giải thuật và lập trình, ĐHSP Hà Nội Sách, tạp chí
Tiêu đề: Giải thuật và lập trình
[6]. Vũ Thị Huệ (2013), Xây dựng hệ thống bài tập luyện kỹ năng cho học sinh chuyển đổi giữa cấu trúc lặp While ... do và For ... do, Sáng kiến kinh nghiệm, Trường THPT Trần Phú – Thanh Hóa Sách, tạp chí
Tiêu đề: Xây dựng hệ thống bài tập luyện kỹ năng cho học sinh chuyển đổi giữa cấu trúc lặp While ... do và For ... do, Sáng kiến kinh nghiệm
Tác giả: Vũ Thị Huệ
Năm: 2013
[7]. Vũ Quốc Khanh (2013), Bổ sung hệ thống bài tập môn tin lớp 11, Sáng kiến kinh nghiệm, Trường THPT Đoàn Kết – Hà Nội Sách, tạp chí
Tiêu đề: Bổ sung hệ thống bài tập môn tin lớp 11, Sáng kiến kinh nghiệm
Tác giả: Vũ Quốc Khanh
Năm: 2013
[8]. Đặng Văn Tuấn (2015), Một số bài tập về cách làm việc với tệp, Sáng kiến kinh nghiệm, Trường THPT Đông Sơn 1 – Thanh Hóa Sách, tạp chí
Tiêu đề: Một số bài tập về cách làm việc với tệp, Sáng kiến kinh nghiệm
Tác giả: Đặng Văn Tuấn
Năm: 2015
[9]. Nguyễn Quang Vịnh, Bài tập thực hành Pascal Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w