Скласти програму (Pascal ABC)на знаходження мінімального числа в двохвимірном масиві.
Приблизно написав але помилка..:
Program pr4;
uses crt;
const n=2;
var B:array[1..n] of integer;min,i,j:integer;
begin;
for i:=1 to n do
for j:=1 to n do
begin;
write('B[i]=');
read ('B[i,j]);
end;
for i:=2 to n do
for j:=2 to n do
if B[i,j]<min then min:=B[i,j];
write('Найменший елемент масиву min=',min);
end.
Answers & Comments
Verified answer
Чесно кажучи, написано дуже "приблизно" :)1) Слово "двовимірний" означає, що масив є таблицею (з рядками і стовпцями), а не те, що його довжина =2 елементи.
Тому значення n (рядок const n=2;) краще замінити на щось быльше, хоча б 10.
2) У розділі var двовимірний масив описується так:
var B:array[1..n, 1..n] of integer;
(вважаємо масив квадратним)
3) Бажано підкоректувати запрошення на ввід, тому що користувач бачить одне і те ж для кожного елемента:B[i]=
Потрібно написати так: write('B[',i,',',j,]=');
read ('B[i,j]);- тут зайва лапка, має бути так read (B[i,j]); і бажано замість read використати readln, щоб кожне нове число користувач мав вводити з нового рядка.
Для навчального завдання ще краще не запитувати користувача вводити сто чисел, а заповнити масив програмно випадковими числами:
randomize;
B[i,j]:= random(101)-50; (задає числа від -50 до 50)
4)
for i:=2 to n do
for j:=2 to n do
Чому ти переглядаєш масив, починаючи з 2 рядка і 2-го стовпця???
Має бути
for i:=1 to n do
for j:=1 to n do
5)
if B[i,j]<min then min:=B[i,j]; - ти порівнюєш елемент B[i,j]зі змінною min, а чОму вона рівна? Де ти задаєш її значення?
6) Ну і бажано вивести весь масив на екран, щоб користувач міг його бачити.
Ось виправлений варіант програми:
Program pr4;
uses crt;
const n=10;
var
B:array[1..n,1..n] of integer;
min,i,j:integer;
begin;
randomize;
for i:=1 to n do
begin
for j:=1 to n do
begin
B[i,j]:=random(101)-50;
write(B[i,j]:3, ' ');
end;
writeln;
end;
writeln;
min:= B[1,1];
for i:=1 to n do
for j:=1 to n do
if B[i,j]<min then min:=B[i,j];
writeln('Найменший елемент масиву min=',min);
end.