Помощь - Поиск - Пользователи - Календарь
Полная версия: Локальный минимум
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ф
Элемент Матрицы называется ЛОКАЛЬНЫМ МИНИМУМОМ, если он меньше всех соседей(по строке и столбцу). Напистаь программу , обеспечивающую ввод с клавиатуры целочисленной матрицы размером M на N, и обнаружение и подсчет кол-ва всех локальных минимумов....
Archon
Доогая, ф, все мы тут, конечно, девушек очень любим, но правила форума ко всем относятся:

Цитата(Правила раздела)
1. Заголовок темы должен быть информативным В противном случае тема удаляется
А то volvo надоело уже всем напоминать

Тут была похожая задача: Задачка о 2-мерном массиве


Цитата
все мы тут, конечно, девушек очень любим

А я очень-очень люблю , поэтому тему переименовал smile.gif
Ф
спасибо солнце :flowers:

Все для вас, прекрасные девушки! :-* wub.gif
ф
ребята помогите

Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей.

вот моя прога но она не работает

=((

что делать подскажите

Код
program oo;
uses crt;
const
n = 4;
a: array[1 .. n, 1 .. n] of integer =
((1, 2, 3, 4),(5, 4, 2, 6),(7, 3, 2, 7),(8, 1, 4, 2));
function is_local_min(i, j: integer): boolean;
 var
 b: boolean;
 ii, jj: integer;
   begin
 clrscr;
b := true;
 begin
for ii := pred(i) to succ(i) do
for jj := pred(j) to succ(j) do
if (ii in [1 .. n]) and (jj in [1 .. n]) then
 if (ii = i) and (jj = j) then continue
else b := b and (a[ii, jj] > a[i, j]);
is_local_min := b;
   end;
writeln(a[i,j]);
writeln(is_local_min(i,j));
 end.


Тегами пользуемся ...
volvo
smile.gif А вот так?
program oo;
uses crt;
const
n = 4;
a: array[1 .. n, 1 .. n] of integer =
((1, 2, 3, 4),(5, 4, 2, 6),(7, 3, 2, 7),(8, 1, 4, 2));

function is_local_min(i, j: integer): boolean;
var
b: boolean;
ii, jj: integer;
begin
b := true;

for ii := pred(i) to succ(i) do
for jj := pred(j) to succ(j) do
if (ii in [1 .. n]) and (jj in [1 .. n]) then
if (ii = i) and (jj = j) then continue
else b := b and (a[ii, jj] > a[i, j]);
is_local_min := b;
end;

var
i, j: integer;
begin
for i := 1 to n do
for j := 1 to n do
if is_local_min(i, j) then begin
writeln('a[',i,',',j,'] = ',a[i, j]);
end;

end.

Зачем же исправлять программу? Ведь по ссылке же была рабочая версия, надо было просто удалить несколько строк ... rolleyes.gif
ф
так спасибо большое :flowers: :flowers: :flowers:
у меня теперь два вопроса

1)что такое теги?=)))
2)и что значит то что он выводит вот это : a[1,1]=1 a[4,2]=1 :flowers:

(p.s. извините за глупые вопросы)) :low:
volvo
Цитата(ф @ 22.06.05 19:01)
1)что такое теги?
Над тем полем, где вводится текст сообщения есть кнопка:
[CОDE], и комбобокс. Если в сообщении есть программа на Паскале, просто выделяем ее мышкой и выбираем в комбобоксе PAS, так тексты программ гораздо удобнее читать... :yes:
Цитата(ф @ 22.06.05 19:01)
2)и что значит то что он выводит вот это : a[1,1]=1 a[4,2]=1
Значит, что в матрице, которая задана в программе есть 2 локальных минимума:
элемент с индексами [1, 1] (равный 1)
элемент с индексами [4, 2] (равный 1)

если бы их было больше, они бы все распечатались... Если нет локальных минимумов - вообще ничего напечатано не будет... smile.gif
ф
умничка
спасиб тебе

у меня еще может вопрос будет
но попозже :P :yes:
ф
хотя собственно вопрос пришел сразу=))

мне вот надо чтоб ввод матрицы был с клавиатуры


a: array[1 ..20 , 1 .. 20] of integer;
n,m,i,j:integer;
begin
writeln('');
write('stroki');
readln(n);
write('stolbci');
readln(m);
writeln('vvedite elementi matrici;');
for i:=1 to n do
for j:=1 to m do
begin
write('a[',i, ',',j,']=');
readln(a[i,j]);
end;
writeln;
readln;
end;


как он делается понятно,вот так вроде,вот только куда я его не вставляла в этой проге,чтобы не делала,не получается=(( помоги пожалуйста, и я отстану=))))) :flowers: кстати вроде тег сделала
volvo
В том-то и проблема, что это вставляется не одним куском, а разбивается на 2 части...
По-моему вот так, я не проверял, попробуй smile.gif
program oo;
uses crt;

var
a: array[1 ..20 , 1 .. 20] of integer;
n,m:integer;

function is_local_min(i, j: integer): boolean;
var
b: boolean;
ii, jj: integer;
begin
b := true;

for ii := pred(i) to succ(i) do
for jj := pred(j) to succ(j) do
if (ii in [1 .. n]) and (jj in [1 .. m]) then
if (ii = i) and (jj = j) then continue
else b := b and (a[ii, jj] > a[i, j]);
is_local_min := b;
end;

var
i, j: integer;
begin
writeln('');
write('stroki'); readln(n);
write('stolbci'); readln(m);
writeln('vvedite elementi matrici;');
for i:=1 to n do
for j:=1 to m do begin
write('a[',i, ',',j,']=');
readln(a[i,j]);
end;
writeln;
readln;

writeln(' results: ');
for i := 1 to n do
for j := 1 to m do
if is_local_min(i, j) then begin
writeln('a[',i,',',j,'] = ',a[i, j]);
end;
end.
ф
да работает
спасибааааааааааааааааааааааа!уря! :flowers:
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.