Trang chủ Tin Học Lớp 8 program MIDI; uses crt; var i,n :integer; A:array[1..100] of integer;...

program MIDI; uses crt; var i,n :integer; A:array[1..100] of integer; KT: boolean; begin clrscr; write('Nhap so n: ');readln(n); For i:

Câu hỏi :

program MIDI; uses crt; var i,n :integer; A:array[1..100] of integer; KT: boolean; begin clrscr; write('Nhap so n: ');readln(n); For i:=1 to n do begin write('A[',i,']= '); readln(A[i]); end; For i:=2 to n-1 do if (A[i+1]>A[i]) and (A[i+2]<A[i+1]) then KT:=true; For i:=2 to n-1 do if (A[i+1]<=A[i])and (A[i+2]>=A[i+1]) then begin KT:=false; break; end; if KT=true then write('YES'); if KT=false then write('NO'); readln; end. Các bác chạy đoạn chương trình này rồi nhập 1,2,3,4,5,6 vào rồi nó lại sai các bác thấy em sai ở đâu chỉ em với Đây là bài về dãy số đơn điệu nghĩa là thế này:2>1<3>2

Lời giải 1 :

program MIDI;
uses crt;
var i,n,k :integer; A:array[1..100] of integer; KT: boolean;
begin
        clrscr;
        write('Nhap so n: ');readln(n);
        For i:=1 to n do
                begin
                        write('A[',i,']= ');
                        readln(A[i]);
                end;
        if a[1]>a[2] then k:=1 else k:=0; kt:=true;
        For i:=1 to n-1 do
        if ((i mod 2=k)and(a[i]<=a[i+1]))or((i mod 2<>k)and(a[i]>=a[i+1])) then KT:=false;
        if KT=true then write('YES');
        if KT=false then write('NO');
        readln;
end.

Bài này sai ở chỗ:

Dãy đơn điệu là: Vd 1 2 1 2 hoặc 2 1 2 1

Mà bài cũ cũa cậu là chỉ xét TH:2 1 3 2 thôi

Ta thấy là a[1]>a[2] thì là ><><>... ngược lại là <><><>...

Vậy nên mình tính k

k là 1 khi a[1]>a[2], 0 khi ngược lại

k là để xét Vd 1212 thì chạy từ 1 tới n nó thấy 1 mà >2 thì false (1 là ở những VT mod 2=k)

Thảo luận

-- Xin hay nhất ạ

Lời giải 2 :

Bạn không nên nhập số bằng mảng nhé. Nên nhập bằng xâu.

uses crt;
var s:string;
    i:longint;
function sdd(s:string):boolean;
var i,d:longint;
begin
d:=0;
for i:=2 to length(s)-1 do
if ((s[i-1]<s[i]) and (s[i]>s[i+1])) or ((s[i-1]>s[i]) and (s[i]<s[i+1]))
then d:=d+1;
if d=length(s)-2 then sdd:=true else sdd:=false;
end;
begin
clrscr;
write('Nhap so can kiem tra: ');readln(s);
if sdd(s)=true then write('-> Day la so don dieu')
else write('-> Day khong phai la so don dieu');
readln;
end.

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ự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Copyright © 2021 HOCTAP247