Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2008, 15:26   #1
Anita_i
 
Регистрация: 11.05.2008
Сообщений: 9
Вопрос Массивы. Помогите пожалуйста с решением

Подскажите пожалуйста как решить эту задачу

Задана матрица размером NxM. Определить k – количество “особых” элементов матрицы, считая элемент “особым”, если в его строке слева от него находятся элементы, меньшие его, а справа – большие.

Спасибо
Anita_i вне форума Ответить с цитированием
Старый 23.05.2008, 15:28   #2
ryton
Пользователь
 
Аватар для ryton
 
Регистрация: 23.05.2008
Сообщений: 97
По умолчанию

А если элемент первый или последний?
я не для этого мира и это так
ryton вне форума Ответить с цитированием
Старый 23.05.2008, 15:44   #3
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Код:
var matr:array [0..N,0..M]of integer;
     Kol_K,i,j:integer;
     fl_L,fl_R:bool;
begin
Randomize; 
for i:=0 to N do
 begin
  for j:=0 to M do
   begin
    matr[i,j]:=Rand(100000);
   end;
 end;
for i:=1 to N do
 begin
  for j:=1 to M do
   begin
    fl_L:=false; fl_R:=false;
    for k:=j-1 downto M do
     if(matr[i,j]<matr[i,k])then fl_L:=true;
    for t:=j+1 to N do
     if(matr[i,j]>matr[i,t])then fl_R:=true;
    if((fl_L=false) and (fl_R=false))then Inc(Kol_K);
   end;
 end; 
 ShowMessage('Колличество особых елементов: '+IntToStr(Kol_K));
end;
Нет невыполнимых задач, всё дело времени...

Последний раз редактировалось D-mon; 23.05.2008 в 15:53.
D-mon вне форума Ответить с цитированием
Старый 23.05.2008, 15:50   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну код в студию.
Особый это если if and(a[i]>a[i-1])and(a[i]<a[i+1]) then Особый
Ну ирганицы массива проверять.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.05.2008, 16:49   #5
Anita_i
 
Регистрация: 11.05.2008
Сообщений: 9
По умолчанию

Спасибо за помощь

А если решать вот таким вот примерно образом, задача не хочет работать, почему?
Код:
begin
k := 0
for i:=1 to m
for j:=2 to n-1
begin
left := true;
right: = true;
for q:=1 to j-1
begin
if a[q] >= a[j] then left := false;
end;
for q := j+1 to n
begin
if a[q] <= a[j] then right := false;
end;
if left = true and right = true then k = k +1
end;
Anita_i вне форума Ответить с цитированием
Старый 23.05.2008, 17:07   #6
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Код:
begin
k := 0
for i:=1 to m
for j:=2 to n-1
begin
left := true;
right: = true;
for q:=1 to j-1 // ту не to а downto
begin
if a[q] >= a[j] then left := false;
end;
for q := j+1 to n
begin
if a[q] <= a[j] then right := false;
end;
if left = true and right = true then k = k +1
end;
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 23.05.2008, 20:13   #7
Anita_i
 
Регистрация: 11.05.2008
Сообщений: 9
По умолчанию

Класс, спасибо
Anita_i вне форума Ответить с цитированием
Старый 23.05.2008, 20:34   #8
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

if left = true and right = true then k = k +1

->

if left and right
then k := k +1; // !! присвоение
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите пожалуйста с решением задач с матрицами очень прошу Денисько54 Помощь студентам 18 04.03.2009 11:35
Помогите пожалуйста сделать в паскале граф и массивы neomaximus Помощь студентам 9 13.06.2008 10:38
Помогите, пожалуйста, с решением Akademik Помощь студентам 2 23.04.2008 23:17
Помогите, пожалуйста, с решением задачи Knight_Maggot Помощь студентам 3 26.10.2007 10:46