Trang chủ Tin Học Lớp 8 Bài toán: Một phần tử được gọi là điểm cực...

Bài toán: Một phần tử được gọi là điểm cực tiểu của mảng 2 chiều A[m.n] nếu nó không lớn hơn các phần tử kề nó. Hãy lập trình tìm các điểm cực tiểu (cho m,n 1

Câu hỏi :

Bài toán: Một phần tử được gọi là điểm cực tiểu của mảng 2 chiều A[m.n] nếu nó không lớn hơn các phần tử kề nó. Hãy lập trình tìm các điểm cực tiểu (cho m,n 100, các giá trị của phần tử mảng có giá trị tuyệt đối không quá 32000) Dữ liệu vào: cho file CUCTIEU.INP gồm: – Dòng đầu tiên gồm 2 số M, N (0 ≤ M,N ≤100) – M dòng tiếp theo, mỗi dòng gồm có N số nguyên của mảng A (các giá trị cách nhau ít nhất 1 khoảng cách). Dữ liệu ra: ghi ra file CUCTIEU.OUT vị trí của các điểm cực tiểu Ví dụ: CUCTIEU.INP CUCTIEU.OUT 3 4 (2, 2) 7 4 9 2 (3, 4) 9 3 6 1 6 7 8 0 KO CẦN FILE , TEXT AI GIÚP EM VỚI

Lời giải 1 :

uses crt;
var a: array[0..100, 0..100] of longint;
    i, j, n, m: longint;
    
function check(u, v: longint):boolean;
var i, j: longint;
begin
    for i:=u - 1 to u + 1 do
        for j:=v - 1 to v + 1 do
            if (i <> u) or (j <> v) then
                if a[i][j] < a[u][v] then
                    exit(false);
    exit(true);
end;

begin
    clrscr;
    readln(n, m);
    for i:=1 to n do 
        for j:=1 to m do 
            read(a[i][j]);

    
    for i:=1 to n do
        begin
            a[i][0]:=32000;
            a[i][m + 1]:=32000;
        end;
    for i:=1 to m do
        begin
            a[0][i]:=32000;
            a[n + 1][i]:=32000;
        end;
    
    for i:=1 to n do
        for j:=1 to m do
            if check(i, j) then
                writeln('(', i, ', ', j, ')');
readln;
end.

Thảo luận

-- https://hoidap247.com/cau-hoi/3035534
-- giúp với ạ
-- giải thích cách này với
-- cũng vẫn chỉ đơn giản theo đề là kiểm tra xem số a[i][j] có nhỏ hơn hoặc bằng các số xung quanh hay không ( a[i-1][j-1], a[i-1][j], a[i-1][j+1], a[i][j-1], a[i][j+1], a[i+1][j-1], a[i+1][j], a[i+1][j+1] )
-- à vậy 32000 đấy là sao ạ
-- là chặn không cho các số ở biên bị so sánh với số 0 (a[1][1], a[1][2], ...., a[m][1], a[m][2], ..., a[m][n])
-- tất nhiên các số như a[2][2] (2 < n, 2 < m) thì ko phải :))
-- https://hoidap247.com/cau-hoi/3035924 GIÚP BÀI NÀY VỚI BẠN ƠI

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