Lý thuyết bài thực hành 2 tin học 8

Tóm tắt bài

1.1. Mục đích, yêu cầu

  • Làm quen với việc khai báo và sử dụng các biến mảng ;
  • Ôn luyện cách sử dụng câu lệnh lặp for...do;
  • Củng cố kĩ năng đọc, hiểu và chỉnh sửa chương trình.

1.2. Nội dung

a. 1. Cách khai báo mảng trong Pascal như sau:

Tên mảng: array [ < Chỉ số đầu > .. < Chỉ số cuối > ] of < Kiểu dữ liệu >;

Trong đó:

  • Tên mảng: Do người lập trình đặt
  • arrayof: Là từ khóa của chương trình
  • Chỉ số đầuchỉ số cuối: Là 2 số nguyên, thỏa mãn: chỉ số đầu ≤ chỉ số cuối giữa hai chỉ số là dấu ..
  • Kiểu dữ liệu: Là kiểu của các phần tử, là Integer hoặc Real
  • Số phần tử = chỉ số cuối - chỉ số đầu + 1

a.2. Truy cập đến giá trị phần tử trong mảng:

Tên mảng [ Chỉ số ];

a.3. Nhập giá trị cho mảng:

Sử dụng lệnh Read (hoặc Readln) kết hợp với For ... do để nhập giá trị cho mảng.

Các bước nhập giá trị cho mảng:

  • Bước 1. Nhập số phần tử của mảng;
  • Bước 2. Nhập vào giá trị từng phần tử của mảng (A[i]).

a.4. In giá trị các phần tử của mảng:

Sử dụng lệnh Write (hoặc Writeln) kết hợp với For ... do để in giá trị các phần tử của mảng.

Các bước in giá trị của mảng:

  • Bước 1. Thông báo;
  • Bước 2.  In giá trị của từng phần tử.

b. Thực hành

Bài 1: Viết chương trình nhập điểm của các bạn trong lớp. Sau đó in ra màn hình số bạn đạt kết quả học tập loại giỏi, khá, trung bình và kém (theo tiêu chuẩn từ 8.0 trở lên đạt loại giỏi, từ 6.5 đến 7.9 đạt loại khá, từ 5.0 đến 6.4 đạt trung bình và dưới 5.0 xếp loại kém).

Tiêu chuẩn:

  • Loại giỏi: 8.0 trở lên;
  • Loại khá: 6.5 đến 7.9;
  • Loại trung bình: 5.0 đến 6.4;
  • Loại kém: dưới 5.0;

Gợi ý làm bài:

Ý tưởng:

  • Đặt các giá trị ban đầu: Gioi:=0; Kha:=0; Trungbinh:=0; Kem:=0;
  • Lần lượt cho chạy từ 1 đến N và kiểm tra:
    • Nếu A[i]>=8.0 thì đếm số học sinh giỏi là: Gioi:=Gioi+1;
    • Nếu A[i]<8.0 và A[i]>=6.5 thì đếm số học sinh khá là: Kha:=Kha+1;
    • Nếu A[i]<6.5 và A[i]>=5.0 thì đếm số học sinh trung bình là: Trungbinh:=Trungbinh+1;
    • Còn lại là số học sinh yếu: Kem:=Kem+1

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

  • Input: Điểm của các bạn trong lớp.
  • Output: Số bạn giỏi, khá, trung bình, yếu, kém.

Các biến sử dụng trong chương trình:

  • i: Biến đếm
  • N: Biến để nhập số các bạn trong lớp sẽ được nhập vào.
  • Gioi, Kha, Trungbinh, Kem: Số các học sinh giỏi, khá, trung bình, yếu.
  • A: Biến mảng, dùng để lưu điểm số của các học sinh trong lớp, có kiểu số thực.

Chương trình:

Program Phan_loai;

uses crt;

Var      i, N, Gioi, Kha, Trungbinh, Kem: integer;

 A: array[1..100] of real;

Begin

    clrscr;

    write('Nhap so hoc sinh trong lop, N= ');            

    readln(N);

    writeln('Nhap diem :');

       For i:=1 to N do

          Begin

               write(‘Diem cua hoc sinh thu ‘, i,’ =’);

               readln(A[i]);

          End;

Gioi:=0;

Kha:= 0;

Trungbinh:= 0;

Kem:= 0;

          for i:=1 to N do

               Begin

               if A[i] >= 8.0 then

                           Gioi:= Gioi + 1;

               if (A[i] <8.0 ) and (A[i] >=6.5)  then  

                          Kha:= Kha + 1;

               if (A[i] >= 5.0 ) and (A[i] < 6.5)  then

                          Trungbinh:= Trungbinh + 1;

               if a[i]<5.0 then

                           Kem:=Kem+1;

    end;

    writeln(' Ket qua hoc tap: ');

    writeln(Gioi, ' ban hoc gioi ');

    writeln(Kha, ' ban hoc kha ');

    writeln(Trungbinh, ' ban hoc trung binh');

    writeln(Kem, ' ban hoc kem ');

    readln;

End.

Bài 2: Bổ sung và chỉnh sửa chương trình trong Bài 1 để nhập hai loại điểm Toán và Ngữ văn của các bạn, sau đó in ra màn hình điểm trung bình của mỗi bạn trong lớp (theo công thức Điểm trung bình = (điểm Toán + điểm Ngữ văn)/2), điểm trung bình của cả lớp theo từng môn Toán và Ngữ văn.

Gợi ý làm bài:

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

Input: Điểm môn Toán và điểm môn Văn của các bạn trong lớp.

Output:

  • Điểm trung bình của mỗi bạn trong lớp;
  • Điểm trung bình môn Toán của cả lớp;
  • Điểm trung bình môn Văn của cả lớp;

Thuật toán:

  • Bước 1: Nhập N là số các bạn học sinh trong lớp;
  • Bước 2: Nhập điểm môn Toán và môn Văn vào từ bàn phím;
  • Bước 3: In điểm trung bình mỗi học sinh: (điểm Toán + điểm Văn)/2
  • Bước 4: Tính điểm trung bình cả lớp theo từng môn:
    • TBToan \(\leftarrow\) TBToan/N;
    • TBVan \(\leftarrow\) TBVan/N.
  • Bước 5: In điểm TBToan, TBVan ra màn hình và kết thúc.

Chương trình:

Program Diem_trung_binh;

Uses crt;

Var    i, N: integer;

       TBToan, TBVan: real;

       DiemToan, DiemVan: array [1..100] of real;

Begin

  clrscr;

  write(‘Nhap so cac ban HS trong lop, N =‘);

  readln(N);

  writeln(‘Nhap diem Toan: ‘);

  For i:=1 to N do begin write(i, ‘ . ‘);

          readln(DiemToan[i]); end;

  Writeln(‘Nhap diem Van: ‘);

  For i:=1 to n do begin write(i, ‘. ‘);

        readln(DiemVan[i]); end;

  writeln(‘Diem trung binh moi HS: ‘);

  For i:=1 to n do

          Writeln(i, ‘ . ’, (DiemToan[i]+DiemVan[i])/2:3:1);

  TBToan:=0;

  TBVan:=0;

  For i:=1 to N do

  Begin

  TBToan:=TBToan+DiemToan[i];

  TBVan:=TBVan+DiemVan[i];

  end;

  TBToan:=TBToan/N;

  TBVan:=TBVan/N;

  Writeln(‘Diem trung binh mon Toan: ‘, TBToan:3:2);

  Writeln(‘Diem trung binh mon Van: ‘,TBVan:3:2);

  readln

End.

Chạy chương trình với các số liệu cụ thể:

N=3 (3 học sinh):

Học sinh Điểm Toán Điểm Văn Điểm trung bình của mỗi học sinh
1 5 7 6.0
2 6 8 7.0
3 7 9 8.0
Điểm trung bình Toán và Văn 6.0 8.0  

2. Luyện tập Bài thực hành 7 Tin học 8

Sau khi học xong Bài thực hành 7: Xử lý dãy số trong chương trình, các em cần ghi nhớ các nội dung:

1. Cú pháp khai báo biến mảng kiểu số nguyên và số thực trong Pascal có dạng:

  • Var < tên biến mảng >: array[ < chỉ số đầu > .. < chỉ số cuối >] of integer;
  • Var < tên biến mảng >: array [< chỉ số đầu >..< chỉ số cuối >] of real;

Trong đó, chỉ số đầu không lớn hơn chỉ số cuối.

2. Tham chiếu tới phần tử của mảng được xác định bằng cách:

< tên biến mảng > [ chỉ số ]

1. Giả sử ở đầu chương trình đã khai báo như sau:

Const: a = 20;

Var

b: integer; x: real; c: char; d: boolean;

Hãy cho biết lệnh nào dưới đây bị lỗi và giải thích lý do. Trao đổi ý kiến với các nhóm khác.

  • Lệnh 1: readln (a);
  • Lệnh 2: writeln (d - 3);
  • Lệnh 3: writeln (a);
  • Lệnh 4: writeln (b + x);
  • Lệnh 5: writeln (c - 3);
  • Lệnh 6: writeln (x div 3);
  • Lệnh 7: writeln (x >= b);
  • Lệnh 8: writeln (a > 19);

Xem lời giải

2. Cùng các bạn trong nhóm thảo luận và trả lời câu hỏi sau:

Xét chương trình sau:

Const

       a = 20;

       d = TRUE;

Var

      b:  integer;    x:  real;      c:  char;

Begin

      write ('Hay nhap gia tri cho b: '); readln (b);

      write ('Hay nhap gia tri cho c: '); readln (c);

      ...

      readln();

End.

Khi thực hiện chương trình, nếu người sử dụng nhập giá trị 18 cho biến b và nhập kí tự 'k' cho biến c thì từng lệnh dưới đây sẽ hiển thị kết quả gì lên màn hình khi được thay vào chỗ dấu ba chấm?

  • Lệnh 1: writeln ((36 - 5 * 2) div 3);
  • Lệnh 2: writeln ((8 mod 3) <> 2);
  • Lệnh 3: writeln (b/6);
  • Lệnh 4: writeln (b/6:10:2);
  • Lệnh 5: writeln (a/6:10:2);
  • Lệnh 6: writeln (b/6 <= a/5);
  • Lệnh 7: writeln (c = 'K');
  • Lệnh 8: writeln (d);

Xem lời giải

C. Hoạt động tìm tòi, mở rộng

Scratch và Pascal có những điểm giống và khác nhau rất thú vị. Để khám phá những điều này, em hãy kiểm tra xem những khẳng định nào sau đây là đúng:

A. Scratch không cần khai báo kiểu dữ liệu cho biến nhưng Pascal cần khai báo kiểu dữ liệu cho biến.

B. Câu lệnh a := a + 2 trong Pascal giống lệnh change a by 2 trong Scratch.

C. Cũng giống như biểu thức join Gia tri cua a la a trong Scratch (trong đó a là một biến nhận giá trị số) ta cũng có biểu thức sau trong Pascal: 'Gia tri cua a la' + a.

D. Việc gõ câu lệnh write ('a= ',a, ',b= ',b) trong Pascal tương đương với các thao tác kéo thả một lệnh say, ba lệnh join và hai biến a, b trong Scratch để tạo thành lệnh sau: say join a= join a join ,b= b

E. Trong Pascal và Scratch, số thực được ngầm định in ra ở dạng khoa học

Xem lời giải