Viết chương trình tính và đưa ra màn hình nhiệt độ trung bình của 7 ngày trong tuần

1. Khái Niệm .

a. Ví Dụ:

 Nhập vào nhiệt độ(trung bình) của mỗi ngày trong tuần, tính và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng ngày trong tuần có nhiệt độ cao hơn nhiệt độ trung bình của tuần.

Input: Nhiệt độ 7 ngày trong tuần.

Output: Nhiệt độ trung bình của tuần, số ngày có nhiệt độ cao hơn nhiệt độ trung bình.

Bạn đang xem nội dung tài liệu Bài giảng Tin 11 Bài 11: Kiểu mảng, để tải tài liệu về máy bạn click vào nút TẢI VỀ ở trên

SV Thực Hiện:VÕ THỊ MỸ HẠNHI.Kiểu Mảng Một Chiều1. Khái Niệm .a. Ví Dụ: Nhập vào nhiệt độ(trung bình) của mỗi ngày trong tuần, tính và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng ngày trong tuần có nhiệt độ cao hơn nhiệt độ trung bình của tuần.Hãy xác định INPUT và OUTPUT của bài toán ?Input: Nhiệt độ 7 ngày trong tuần.Output: Nhiệt độ trung bình của tuần, số ngày có nhiệt độ cao hơn nhiệt độ trung bình. Chương trình giải bài toán viết bằng pascal như sau:Program vd1;Uses crt;Var t1,t2,t3,t4,t5,t6,t7,tb : real; dem : integer;BEGIN Clrscr; write(‘ Nhap vao nhiet do 7 ngay : ’); readln(t1,t2,t3,t4,t5,t6,t7); tb : = (t1+t2+t3+t4+t5+t6+t7)/7; dem : = 0 ; if (t1>tb) then dem := dem + 1; if (t2>tb) then dem := dem + 1; if (t3>tb) then dem := dem + 1; if (t4>tb) then dem := dem + 1; if (t5>tb) then dem := dem + 1; if (t6>tb) then dem := dem + 1; if (t7>tb) then dem : = dem + 1; Writeln(‘ Nhiet do trung binh trong tuan = ‘,tb : 6 : 2); Writeln(‘ so ngay co nhiet do cao hon nhiet do tb ‘, dem);Readln;END.Quan sát chương trình và hãy cho biết nếu muốn tính bài toán trên với N ngày lớn( N=366) thì sẽ gặp khó khăn gì ? Để khắc phục khó khăn đó ta sử dụng kiểu dữ liệu mảng một chiềub.Khái Niệm: - Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu , mảng được đặt tên và mỗi phần tử được mang một chỉ số.Với mảng một chiều ta cần quan tâm: Tên kiểu mảng một chiều. Số lượng phần tử. Kiểu dữ liệu của phẩn tử. Cách khai báo biến mảng. Cách tham chiếu đến phần tử.25301722282015Ví Dụ : Nhập Nhiệt Độ 7 Ngày trong tuầnKhi tham chiếu đến một phần tử thứ i ta viết :A[i] Ví Dụ : A[4]=22  Tên mảng : A Số phần tử của mảng : 7  Kiểu dữ liệu của các phần tử : Kiểu Nguyên ATrong đó:2.Khai Báo*Cách 1: Khai báo trực tiếpVar :array[chỉ số đầu..chỉ số cuối] of; *Cách 2: Khai báo gián tiếp:Type=array[chỉ số đầu..chỉ số cuối] of ;Var : ; Ví Dụ: type nhietdo=array [1..366] of integer Var A: nhietdo;Ví Dụ: Var nhietdo :array[1..366] of integer; Var A,B:array [1..100] of real; Type là từ khóa dùng để khai báo biến Array là từ khóa dùng để khai báo mảng.Chỉ số đầu, chỉ số cuối thường là các hằng hoặc biểu thức nguyên giữa hai chỉ số là dấu .. Chỉ số đầu bé hơn chỉ số cuối.Trong đó:3.Ví Dụ:giải quyết ví dụ 1 bằng cách sử dụng kiểu mảng một chiều. Các BướcThể hiện bằng pascal Nhập số phần tử của mảng Nhập vào giá trị của các phần tử trong mảng(A[i])-Write(‘nhap vao so ngay:’);Readln;-For i:=1 to n do begin write(‘nhiet do ngay thu’,i,’:’); Readln(A[i]); end; Đếm số ngày có nhiệt độ cao hơn nhiệt độ TB của tuần.-Dem:=0;For i:=1 to n do if A[i]>TB then dem:=dem+1;Program vd1;Uses crt;Var A: Array[1..366] of integer; i,n,dem: integer; S,TB : real ;BEGIN Clrscr; write(‘ Nhap vao so ngay : ’) ; readln(n) ; S := 0 ; For i := 1 to n do Begin write(‘ Nhap nhiet do ngay thu ‘,i,’ : ‘) ; readln(A[i]) ; S:=S+A[i] ; End; TB := S/n ; dem := 0 ; For i := 1 to n do If A[i]>TB Then dem := dem+1; Writeln(‘ Nhiet do trung binh ’ ,n,’ ngay = ‘,TB : 6 : 2) ; Writeln(‘ So ngay co nhiet do cao hon nhiet do TB la: ‘, dem) ;Readln ;END.Khai báo mảng một chiềuNhập mảng một chiều Tính tổngĐếm số phần tử thỏa mãn điều kiện.-Củng Cố Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu. Khai báo: tên mảng, chỉ số đầu, chỉ số cuối, kiểu phần tử. Tham chiếu các phần tử mảng: Tên biến mảng[chỉ số phần tử]Quan sát và chọn khai báo đúng? Type array = array[1..200] of real; array = array[byte] of real; array = array [-100..0] of boolean;

File đính kèm:

  • Viết chương trình tính và đưa ra màn hình nhiệt độ trung bình của 7 ngày trong tuần
    bai 11 kieu mang.ppt

Viết chương trình tính và đưa ra màn hình nhiệt độ trung bình của 7 ngày trong tuần

Nhập vào nhiệt độ (trung bình) của mỗi ngày trong tuần. Tính và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng ngày có nhiệt độ TB cao hơn nhiệt trung bình trong tuần?

Bạn đang xem tài liệu "Bài giảng Tin học 11 - Bài 12: Mảng một chiều", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Bài 12 mảng một chiềuGiáo án điện tử tin học lớp 11Nhập vào nhiệt độ (trung bình) của mỗi ngày trong tuần. Tính và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng ngày có nhiệt độ TB cao hơn nhiệt trung bình trong tuần?* Dữ liệu nhập vào (INPUT): t1,t2,t3,t4,t5,t6,t7. * Dữ cần tính và in ra (OUTPUT): tb, dem.Hãy xác định Input, Output và viết chương trình giải bài toán trên ?Bài toán đặt vấn đề:Program vd1;Uses crt;Var t1,t2,t3,t4,t5,t6,t7,tb : real; dem : integer;BEGIN Clrscr; write(‘ Nhap vao nhiet do 7 ngay : ’); readln(t1,t2,t3,t4,t5,t6,t7); tb : = (t1+t2+t3+t4+t5+t6+t7)/7; dem : = 0 ; if (t1>tb) then dem := dem + 1; if (t2>tb) then dem := dem + 1; if (t3>tb) then dem := dem + 1; if (t4>tb) then dem := dem + 1; if (t5>tb) then dem := dem + 1; if (t6>tb) then dem := dem + 1; if (t7>tb) then dem : = dem + 1; Writeln(‘ Nhiet do trung binh trong tuan = ‘,tb : 6 : 2); Writeln(‘ so ngay co nhiet do cao hon nhiet do tb ‘, dem);Readln;END.Quan sát chương trình, hãy cho biết nếu muốn tính nhiệt độ trung bình của N ngày trong năm (VD: N=365) thì sẽ gặp khó khăn gì ?Khai báo quá lớn (t1,t2,t3,...,t365) và chương trình quá dài (với 365 lệnh IF) !!!!! Để khắc phục khó khăn đó ta sử dụng kiểu dữ liệu mảng một chiều. Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu 17201825191219A 1 2 3 4 5 6 7 Trong đó :Khi tham chiếu đến phần tử thứ i ta viết A[i]. Ví dụ: A[5] = 19.  Tên mảng : A. Số phần tử của mảng: 7. Ví dụ: Kiểu dữ liệu của các phần tử: Kiểu nguyên.191. Khái niệm2. Khai báo mảng một chiều trong PASCAL* Cách 1: Khai báo gián tiếp TYPE = array[..] of ; Var : ;Ví dụ: TYPE nhietdo = array[1..365] of integer; Var A: nhietdo;Trong đó :  Chỉ số đầu, chỉ số cuối thường là các hằng hoặc biểu thức nguyên;  Chỉ số đầu  chỉ số cuối;  Giữa 2 chỉ số là dấu .. * Cách 2: Khai báo trực tiếp Var : array[..] of ; Var A,B : array[1..100] of real;Ví dụ: Var nhietdo : array[1..365] of integer;3. Các thao tác xử lí trong mảng một chiều An1. Nhập số phần tử của mảng (n).Write(‘ Nhap vao so ngay:’);Readln(n);2. Nhập vào giá trị của các phần tử trong mảng (A[i]).For i:=1 to n do Begin write(‘nhiet do ngay thu’ ,i, ’ : ’); readln(A[i]); end; .......Các bướcThể hiện bằng pascala. Nhập mảng một chiều với n = 719171921182017Ví dụ: Nhập nhiệt độ n ngày. b. In mảng một chiều Writeln(‘ Mang vua nhap : ’);For i:=1 to n do Write(A[i]:5); Mang vua nhap:- Thông báo - In giá trị của các phần tử 17 20 18 21 19 17 19Kết quả in ra màn hình:Ví dụ: In mảng vừa nhập.* Đếm các phần tử trong mảng thoả mãn điều kiện cho trước dem :=0;For i :=1 to n do IF A[i]>TB then dem:=dem+1; c. Các thao tác xử lí khác Ví dụ: Đếm số ngày có nhiệt độ cao hơn nhiệt độ TB của tuần. TB = 18.7Dem=07654321i19171921182017A[i]011233420211919+1+1+1+1Program vd1;Uses crt;Var A: Array[1..366] of integer; i,n,dem: integer; S,TB : real ;BEGIN Clrscr; write(‘ Nhap vao so ngay : ’) ; readln(n) ; S := 0 ; For i := 1 to n do Begin write(‘ Nhap nhiet do ngay thu ‘,i,’ : ‘) ; readln(A[i]) ; S:=S+A[i] ; End; TB := S/n ; dem := 0 ; For i := 1 to n do If A[i]>TB Then dem := dem+1; Writeln(‘ Nhiet do trung binh ’ ,n,’ ngay = ‘,TB : 6 : 2) ; Writeln(‘ So ngay co nhiet do cao hon nhiet do TB la: ‘, dem) ;Readln ;END.Khai báo mảng 1 chiềuNhập mảng 1 chiềuTính tổngĐếm số phần tử thoả mãn điều kiện Nhap vao so ngay :7Nhap nhiet do ngay thu 1 : 17Nhap nhiet do ngay thu 2 : 20Nhap nhiet do ngay thu 3 : 18Nhap nhiet do ngay thu 4 : 21Nhap nhiet do ngay thu 5 : 19Nhap nhiet do ngay thu 6 : 17Nhap nhiet do ngay thu 7 : 19Nhiet do trung binh 7 ngay = 18.70So ngay co nhiet do cao hon nhiet do TB la: 4Chương trình chạy và cho kết quả như sau: Thông thường, các thao tác xử lí trong mảng một chiều đều dùng câu lệnh FOR...DO.* Tính tổng các phần tử trong mảng thoả mãn điều kiện cho trước Ví dụ: Tính tổng các phần tử trong mảng chia hết cho 3.S :=0;For i :=1 to n do IF A[i] mod 3 = 0 then S:=S+A[i];19121825162015 S = 45Hãy nhớ! Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu.  Khai báo: tên mảng, chỉ số đầu, chỉ số cuối, kiểu phần tử. Tham chiếu phần tử mảng: Tên biến mảng[chỉ số phần tử] Nhiều thao tác xử lí mảng dùng cấu trúc lặp FOR ..TO.. DO.15 20 19 25 18 12 16Var A:ARRAY[1..100] OF integer; A[5] = 18

Tài liệu đính kèm:

  • Viết chương trình tính và đưa ra màn hình nhiệt độ trung bình của 7 ngày trong tuần
    bai14 (54).ppt

Lorem ipsum dolor sit amet, consectetur adipiscing elit.Morbi adipiscing gravdio, sit amet suscipit risus ultrices eu.Fusce viverra neque at purus laoreet consequa.Vivamus vulputate posuere nisl quis consequat.

Create an account

Lorem ipsum dolor sit amet, consectetur adipiscing elit.Morbi adipiscing gravdio, sit amet suscipit risus ultrices eu.Fusce viverra neque at purus laoreet consequa.Vivamus vulputate posuere nisl quis consequat.

Create an account