Thư mục

Quảng cáo

Thành viên trực tuyến

24 khách và 2 thành viên
  • Phạm Quỳnh Như
  • Nguyễn Thành Hân
  • Tìm kiếm

    Quảng cáo

    Hỗ trợ kĩ thuật

    Quảng cáo

    Quảng cáo

    Thống kê

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • Chào mừng quý vị đến với Thư viện Bài giảng điện tử.

    Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành viên, vì vậy chưa thể tải được các tư liệu của Thư viện về máy tính của mình.
    Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay ô bên phải.

    Bài 9. Làm việc với dãy số

    Tham khảo cùng nội dung: Bài giảng, Giáo án, E-learning, Bài mẫu, Sách giáo khoa, ...
    Nhấn vào đây để tải về
    Báo tài liệu có sai sót
    Nhắn tin cho tác giả
    (Tài liệu chưa được thẩm định)
    Nguồn: Sưu tầm
    Người gửi: Nguyễn Xuân Hóa
    Ngày gửi: 10h:28' 14-03-2017
    Dung lượng: 1'021.0 KB
    Số lượt tải: 121
    Số lượt thích: 0 người
    Bài 9: LÀM VIỆC VỚI DÃY SỐ
    Làm việc với dãy số
    Ví dụ:
    Viết chương trình nhập điểm kiểm tra của các học sinh trong lớp.
    - Nhập và lưu điểm
    cho một học sinh
    Write (‘Nhap diem= ‘); Readln(diem_1);
    Khai báo 1 biến như sau:
    Var diem_1: real;
    - Nhập và lưu điểm cho 2
    học sinh
    Khai báo 2 biến như sau:
    Var diem_1, diem_2: real;
    Write (‘Diem hs 1= ‘); Readln(diem_1);
    Write (‘Diem hs 2= ‘); Readln(diem_2);
    Ví dụ:
    Viết chương trình nhập điểm kiểm tra của các học sinh trong lớp.
    - Nhập và lưu điểm
    cho một học sinh
    - Nhập và lưu điểm cho 2
    học sinh
    Khai báo n biến như sau:
    Var diem_1, diem_2, diem_3, diem_4, .. , diem_50: real;
    Write (‘Diem hs 1= ‘); Readln(diem_1);
    Write (‘Diem hs 2= ‘); Readln(diem_2);
    Write (‘Diem hs 3= ‘); Readln(diem_3);
    Write (‘Diem hs 4= ‘); Readln(diem_4);
    ……
    ……
    Write (‘Diem hs n= ‘); Readln(diem_50);
    Những hạn chế:
    Phải khai báo quá nhiều biến.
    Chương trình phải viết khá dài.
    Làm việc với dãy số
    Làm việc với dãy số
    Dữ liệu kiểu mảng: Là một tập hợp hữu hạn các phần tử có thứ tự, mọi phần tử đều có cùng kiểu dữ liệu (số nguyên hoặc số thực). Việc sắp thứ tự thực hiện bằng cách gán cho mỗi phần tử một chỉ số. (số nguyên).
    Biến mảng: khi khai báo một biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là biến mảng.
    Giá trị của biến mảng là một mảng, tức một dãy số (số nguyên, hoặc số thực).
    Vậy:
    Khắc phục những hạn chế:
    - Ghép chung các biến trên thành một dãy.
    - Đặt chung một tên và đặt cho mỗi phần tử một chỉ số.
    Làm việc với dãy số
    Ví dụ:
    A
    i
    1
    2
    3
    4
    5
    6
    Trong đó:
    Tên mảng:
    Chỉ số:
    Số phần tử của mảng:
    Kiểu dữ liệu của các phần tử:
    Khi tham chiếu đến phần tử thứ i, ta viết A[i]
    Ví dụ: A[5]=
    A
    i
    6
    Kiểu số nguyên
    17
    Làm việc với dãy số
    a) Cách khai báo mảng trong Pascal:
    Ví dụ1: Cách khai báo đơn giản một biến mảng trong ngôn ngữ Pascal như sau:
    Tên biến
    Số lượng pt
    Kiểu dữ liệu chung
    Chỉ số đầu
    Chỉ số cuối
    var Chieucao: array[1..50] of real;
    Số phần tử của mảng = chỉ số cuối – chỉ số đầu + 1.
    var Tuoi: array[21..80] of integer;
    Làm việc với dãy số
    Var : array[..] of ;
    Cách khai báo mảng trong pascal?
    Trong đó:
    Array, of là từ khóa của chương trình.
    Tên biến mảng do người dùng đặt.
    Chỉ số đầu phải <= chỉ số cuối. (Số nguyên)
    Giữa hai chỉ số là dấu ..
    Kiểu dữ liệu có thể là số nguyên hoặc số thực.
    a) Cách khai báo mảng trong Pascal:
    Làm việc với dãy số
    a) Cách khai báo mảng trong Pascal:
    Hãy khai báo các mảng sau:
    Var diem : array[1..40] of real;
    Var A: array[1..10] of integer;
    B: array[1..10] of integer;
    Var A ,B: array[1..10] of integer;
    2/ Mảng A, B gồm 10 phần tử thuộc kiểu dữ liệu số nguyên?
    1/ Mảng Diem gồm 40 phần tử thuộc kiểu dữ liệu số thực?
    Làm việc với dãy số
    a) Cách khai báo mảng trong Pascal:
    BT2/79: Các khai báo biến mảng sau trong Pascal đúng hay sai?
    A. Var X : Array[10,13] of Integer;
    B. Var X : Array[5..10.5] of Real;
    BT 4 /79: Câu lệnh khai báo biến mảng sau đây máy tính có thực hiện được không?
    Var N : integer;
    A : array[1..N] of real;
    Không xác định
    KHÔNG
    Lưu ý:
    - Số phần tử của mảng = chỉ số cuối – chỉ số đầu + 1
    - Kích thước của mảng phải được khai báo bằng một con số cụ thể
    Làm việc với dãy số
    b) Truy cập đến giá trị phần tử trong mảng:
    Tên mảng [Chỉ số]
    Cú pháp:
    Ví dụ1:
    3 4 5 6 7
    Cho mảng A chứa các giá trị sau:
    Hãy xác định: A[1], A[3], A[5], A[10] ?
    A[1], A[10]: không xác định
    A[3]=2; A[5]=7
    Làm việc với dãy số
    b) Truy cập đến giá trị phần tử trong mảng:
    Tên mảng [Chỉ số]
    Cú pháp:
    Ví dụ2:
    A[3]:=2;
    A[4]:=5;
    A[6]:=A[3]+A[4];
    Cho các câu lệnh sau:
    A[3]=2;
    A[4]=5;
    A[6]=7
    Giá trị của các phần A[3], A[4], A[6] sẽ là bao nhiêu?
    - Có thể gán giá trị, đọc giá trị và thực hiện tính toán với các phần tử trong mảng
    Có thể thực hiện các thao tác nào với các phần tử trong mảng?
    Làm việc với dãy số
    c) Lệnh nhập giá trị cho biến mảng:
    - Sử dụng lệnh Read (Readln) kết hợp với For ... do.
    Tiếp ví dụ 1 SGK/75. Viết chương trình nhập điểm kiểm tra của các học sinh trong 1 lớp và in ra điểm cao nhất?
    - Yêu cầu 1: Thực hiện việc khai báo các biến diem_1, diem_2,…,diem_50 bằng biến mảng?
    Var diem : array[1..50] of real;
    Làm việc với dãy số
    c) Lệnh nhập giá trị cho biến mảng:
    - Yêu cầu 2: Viết chương trình nhập điểm cho 50 học sinh ?

    Write (‘Diem hs 1= ‘); Readln(diem_1);
    Write (‘Diem hs 2= ‘); Readln(diem_2);
    Write (‘Diem hs 3= ‘); Readln(diem_3);
    Write (‘Diem hs 4= ‘); Readln(diem_4);
    ……
    ……
    Write (‘Diem hs n= ‘); Readln(diem_50);

    For i:=1 to 50 do
    Begin
    write(‘nhap diem hs’,i,’:’);
    readln(diem[i]);
    End;
    - Sử dụng lệnh Read (Readln) kết hợp với For ... do.
    Vậy cách khai báo và sử dụng biến mảng có lợi ích gì?
    Làm việc với dãy số
    d. Xuất giá trị của mảng ra màn hình:
    Sử dụng lệnh Write (Writeln) kết hợp với For ... do.
    Max:=diem_1;
    If diem_1If diem_2 ……….
    If diem_49Writeln(‘diem cao nhat la:`,max:2:1);
    Max:=diem[1];
    For i:=2 to 7 do
    if diem [i]>Max then Max:=diem[i];
    Writeln(diem cao nhat la:‘ , max:2:1);
    - Yêu cầu 3: So sánh điểm của học sinh và in ra màn hình điểm cao nhất?
    Làm việc với dãy số
    Bài toán: Viết chương trình nhập điểm thi học kì môn Tin học của một lớp gồm N học sinh. In ra màn hình điểm thi cao nhất và thấp nhất.
    Input:
    Output:
    Hãy nêu ý tưởng tìm số lớn nhất và nhỏ nhất của dãy số
    Dãy số A gồm điểm của N học sinh
    Max, Min của dãy số
    Số này lớn nhất
    Số này mới lớn nhất
    ồ! Số này lớn hơn
    Tìm ra số lớn nhất rồi!
    THUẬT TOÁN TÌM MAX
    4.5
    6.0
    7.0
    8.0
    9.5
    * Đoạn chương trình
    Max:=A[1];
    For i:=2 to N do IF A[i] > Max Then Max:=A[i];
    Ý TƯỞNG TÌM MAX:
    - Đặt giá trị của max=A[1].
    - Lần lượt cho i chạy từ 2 đến n, so sánh giá trị A[2] với giá trị của max, nếu A[2]>max thì max nhận giá trị mới là A[2].
    Tương tự ta tìm min bằng cách:
    - Đặt giá trị của min=A[1].
    - Lần lượt cho i chạy từ 2 đến n, so sánh giá trị A[2] với giá trị của min, nếu A[2]Làm việc với dãy số
    Program vd1;
    Uses crt;
    Var
    A: Array[1..100] of real;
    i,n: integer;
    Max,min: real;

    BEGIN
    Clrscr;
    write(‘ Nhap vao so học sinh : ’) ;
    readln(n) ;
    For i := 1 to n do
    Begin
    write(‘ Nhap diem Hs thu ‘,i,’ : ‘) ;
    readln(A[i]) ;
    End;
    Max:=A[1];
    For i := 2 to n do
    If A[i]>Max Then Max := A[i];
    Writeln(‘ Diem lon nhat la `, Max:5:1) ;
    Min:=A[1];
    For i := 2 to n do
    If A[i] Writeln(‘ Diem nho nhat la `, Min:5:1) ;
    Readln
    END.
    Khai báo biến mảng
    Nhập vào biến mảng
    Tìm số lớn nhất và số nhỏ nhất










    Nhap vao so hoc sinh :
    7
    Nhap diem hs thu 1 :
    7.0
    Nhap diem hs thu 2 :
    9.0
    Nhap diem hs thu 3 :
    4.5
    Nhap diem hs thu 4 :
    6.0
    Nhap diem hs thu 5 :
    9.5
    Nhap diem hs thu 6 :
    8.0
    Nhap diem hs thu 7 :
    5.5
    Diem lon nhat la 9.5
    Diem nho nhat la 4.5
    Chương trình chạy và cho kết quả như sau:
    Kết thúc
     
    Gửi ý kiến
    Nhấn ESC để đóng