Study Lập Trình

Học lập trình dành cho người mới bắt đầu!

ads

Bài 9. Tính nhiệt độ trung bình các ngày và đếm số ngày lớn hơn nhiệt độ trung bình

1. Bài toán

  Yêu cầu: Tính nhiệt độ trung bình các ngày và số ngày có nhiệt độ cao hơn nhiệt độ trung bình
  • Input: Nhập vào số ngày
  • Output: In ra màn hình nhiệt độ trung bình và số ngày có nhiệt độ trên trung bình.

2. Giải thuật:


Bước 1. Nhập thông tin:
  • Bước 1.1. Nhập \(N\);
  • Bước 1.2. Nhập và nhiệt độ của từng ngày.
Bước 2. Xử lý:
  • Bước 2.1. Tính trung bình nhiệt độ các ngày Trung_binh = tổng nhiệt độ các ngày chia cho số ngày.
  • Bước 2.2. Gán \(dem = 0\). Nếu nhiệt độ lớn hơn nhiệt độ trung bình thì đếm tăng lên một (tức \(dem:= dem + 1\)).
Bước 3. In ra màn hình nhiệt độ trung bình và số ngày có nhiệt độ cao hơn nhiệt độ trung bình.

3. Code Pascal:

Program Nhietdo_Nngay;
uses crt;
const Max = 366;
var Nhietdo: array[1..Max] of integer;
        Tong, i, N, dem: integer;
         Trung_binh: real;
Begin
        clrscr;
        writeln('Chuong trinh tinh nhiet do trung binh');
        write('Nhap so ngay: ');
        readln(N);
        Tong:= 0;
        for i:=1 to N do
                Begin
                        write('Nhiet do ngay thu ',i,': ');
                        readln(Nhietdo[i]);
                        Tong:= Tong + Nhietdo[i];
                End;
        Trung_binh:= Tong/N;
        dem:= 0;
        for i:=1 to N do
                if Nhietdo[i] > Trung_binh then dem:= dem + 1;
        writeln('Nhiet do trung binh cua ', N, ' la: ', Trung_binh:4:1);
        writeln('So ngay co nhiet do tren trung binh: ',dem);
        readln;
End.

4. Giải thích code

Dong code Ý nghĩa
Program Nhietdo_Nngay; Đặt tên chương trình Nhietdo_Nngay;
uses crt; Khai báo các hàm thư viện
const Max = 366; Khai báo hằng số cho giá trị biến Max = 366
Var Tong, i, N, dem: Integer Khai báo biến Tong(Tính tổng nhiệt độ các ngày), i(biến chạy),N(Số ngày), dem(Số ngày có nhiệt độ trên nhiệt độ trung bình)
Trung_binh: real; Khai báo biến Trung_binh(Nhiệt độ trung bình)
clrscr; Xóa màn hình khi chạy chương trình
writeln('Chuong trinh tinh nhiet do trung binh'); In ra màn hình dòng chữ Chuong trinh tinh nhiet do trung binh
write('Nhap so ngay: '); In ra màn hình dòng chữ Nhap so luong phan tu cua day:
readln(N); Nhập từ bàn phím giá trị gán vào biến N
Tong:= 0; Gán 0 vào biến Tong
for i:=1 to N do
begin
  write('Nhiet do ngay thu ',i,': ');
  readln(Nhietdo[i]);
  Tong:= Tong + Nhietdo[i]; end;
Cho i chạy từ 1 đến N làm công việc in các phần tử của dãy ra màn hình và tính tổng nhiệt độ các ngày.
Trung_binh:= Tong/N; Tính nhiệt độ trung bình bằng công thức
dem:= 0; Gán biến dem là 0
for i:=1 to N do
if Nhietdo[i] > Trung_binh then
Begin
   dem:= dem + 1;
End;
Cho i từ 1 đến N thực hiện công việc: Nếu phần tử \(Nhietdo[i] > Trung_binh\) thì gán \(max = a[i]\) và gán vị trí i làm \(csmax\)
writeln('Nhiet do trung binh cua ', N, ' la: ', Trung_binh:4:1); In ra màn hình câu "Nhiet do trung binh cua" và in giá trị \(Max\) và câu "la: " ra màn hình
writeln('So ngay co nhiet do tren trung binh: ',dem); In ra màn hình câu "So ngay co nhiet do tren trung binh:" và in giá trị \(dem\) ra màn hình
Readln; Dừng màn hình cho các bạn xem kết quả.

5. Kết Quả Pascal

Kết luận:
    ▪ Bài này chúng ta sử dụng mảng 1 chiều để xử lý dãy số.
    ▪ Kết hợp vòng lặp, câu điện kiện if. Vì thế chúng ta cần hiểu rõ cách sử dụng của vòng lặp và câu điều kiện để có thể làm tốt bài tập này.

Không có nhận xét nào:

Đăng nhận xét