Câu 5 trang 79 SGK Tin học 11

Lý thuyết Bài tập

Tóm tắt bài

Đề bài

Viết chương trình nhập từ bàn phím số nguyên dương N (N ≤100) và dãy A gồm N số nguyên A1...AN có giá trị tuyệt đối lớn hơn 1000. Hãy cho biết dãy A có phải là một cấp số cộng hay không và thông báo kết quả ra mành hình.

Hướng dẫn giải

Để lập chương trình nhập từ bàn phím số nguyên dương N (N<100) và dãy

A gồm N số nguyên A, A1...AN có giá trị tuyệt đối không lớn hơn 100, thì ta cần phải thực hiện việc kiểm tra xem số N nhập vào (số phần tử của dãy) có thỏa mãn yêu cầu của đầu bài hay không nghĩa là 0< N< 100, nếu không đưa ra thông báo “Mời nhập lại". Còn các phần tử, A1,...AN của mảng cũng phải là những số nguyên và có giá trị tuyệt đối không lớn hơn 100 (A[i] >= -100 và A[i]<=100), nếu không đưa ra thông báo “Mời nhập lạĩ'

Tiếp đến ta phải kiểm tra dãy A nhập vào có phải là một cấp số cộng hay không nghĩa là các phần tử của dãy A vừa nhập vào có làm thành một cấp số cộng hay không và đưa ra màn hình thông báo kết quả ra màn hình “A là cấp số cộng’ hoặc “A không là cấp số cộng". Bởi vậy,

Lấy d= A[2] — A[1]

Khi đó, dãy A là cấp số cộng nếu thỏa mãn điều kiện:

A[i]=A[1] + (i-1)d.

(hoặc điều kiện A[i] - A[i-1] = d với (1

Trong chương trình ta dùng một vòng lặp theo biến đếm i để kiểm tra xem mỗi A[i] có thỏa mãn điều kiện nói trên hay không, chi cần phát hiện được một phần tử của A không thỏa mẫn là kết luận được dãy A không là cấp số cộng.

Chương trình:

program bai5_chuong4;

uses crt;

var

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

d,rt,i, dem: integer;

begin

clrscr;

writeln('Nhap mot so lon hon 0 va nho hon 100'); repeat

write ('Nhap N:');

readln(N) 

if (N>=1000) or (N<=0 ) then writeln(’Moi nhap lai !');

until (N>0) and (N<1000); writeln('Nhap cac gia tri cac so hang co tri tuyet doi khong lon hon 1000');

for i:=1 to n do repeat

write (' a [', i ,'] = ')

 readln (a [i]) ; if (A[i]>100) or (A[i]<-1000) then write(’Moi nhap lai ');

until (A[i]>-1000) and (A[i]<1000);

{Kiem tra xem CO la cap so cong khong?} d: = A[2] - A[ 1 ] ; dem:=0;

for i:= 2 to n do if A[i] - A[i-l]od then dem:= dem + 1; if dem >0 then writeln('A khong la cap so cong') else writeln(’A la cap so cong');

readln,

end.

Khi chạy chương trình, nếu nhập số phần tử cùa dãy N= 5 và các phần tử của dãy theo thứ tự là 2,4,6, 8,10 thì chương trình đưa ra thông báo “A la cap so cong”(Hình 59).

Nhưng khi nhập N không thỏa mãn điều kiện đầu bài, chẳng hạn N= -5 thì chương trình đưa ra thông báo “Mời nhập lại!”. Khi đó, ta phải vào lại N, chẳng hạn, N= 5 và nhập tiếp các phần tử của dãy, chẳng hạn: 1, 3, 5, 7, 9 thì kết quả của chương trình: “A la cap so cong’’ (Hình 60).

Còn trong trường hợp các phần tử nhập vào của dãy không thỏa mãn điều kiện A[i] < 1000 và A[i] > -1000: thì ta phải nhập lại các phần tử của dãy cho đến khi chương trình đưa ra thông báo A là cấp số cộng hay không?

Chẳng hạn, ta nhập vào dãy N= 7 phần từ với giá trị các phần tử lần lượt như sau:

2, 5, 7 8, 9, 4, 7 (ở phần tử thứ tư lúc đầu nhập vào số-1500 thì chương trình yêu cầu nhập lại và đã nhập vào số 8) thì chương trình dưa ra thông báo: " A khong la cap so cong* (Hình 62).

 

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự Lớp 11

Lớp 11 - Năm thứ hai ở cấp trung học phổ thông, gần đến năm cuối cấp nên học tập là nhiệm vụ quan trọng nhất. Nghe nhiều đến định hướng sau này rồi học đại học. Ôi nhiều lúc thật là sợ, hoang mang nhưng các em hãy tự tin và tìm dần điều mà mình muốn là trong tương lai nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK