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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2012, 20:49   #1
Лунатик13
 
Регистрация: 14.02.2012
Сообщений: 8
По умолчанию паскаль(массивы)

Привет.Помогите пожалуйста. Скажите что тут не так и напишите как надо правильно.Вот задача: Дана матрица "С" размером N на M.Определить количество "особых элементов" матрицы,считая элемент особым,если в его строке слева от него находятся элементы, меньше его, а справа больше.


Код:
const n=4; m=4;

   type
   Tmas= array[1..n,1..m] of integer;
   var
   mas: Tmas;
   i,j,k,l: integer;
   begin
   randomize;
   for i := 1 to n do
   for j := 1 to m do
   mas [i] [j]:=random (10);
   for i := 1 to n do
   begin
  for j := 1 to m do
    write (mas[i][j]);
    writeln;
   end;
   for i :=1 to n do
    begin

      for j := 1 to m do
        begin
    k:=((j-1)mod m);
l:=((j+1)mod m);
  if ((mas [i][j]>mas[i][k]) and (mas[i][j]<mas[i][l])) then
  writeln ('stroka',i,'stolbec',j,'element',mas[i][j]);
  end;
   end;
   readln;
   end.

Последний раз редактировалось ACE Valery; 15.02.2012 в 23:06.
Лунатик13 вне форума Ответить с цитированием
Старый 15.02.2012, 21:00   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Если я правильно понял задание, то вот так:
Код:
const
  n=4;
  m=4;
type
  Tmas= array[1..n,1..m] of integer;
var
  mas: Tmas;
  i,j,k,l: integer;
begin
  randomize;
  for i := 1 to n do
    for j := 1 to m do
      mas [i] [j]:=random (10);
  for i:=1 to n do
    begin
      for j:=1 to m do
        write(mas[i][j],'  ');
      writeln;
    end;
  for i :=1 to n do
    begin
      for j:=2 to m-1 do //по определению первый и m'ый элемент не могут быть особыми, их не проверяем
        begin
          //k:=((j-1)mod m);  //ололо?
          //l:=((j+1)mod m);  //зачем так изощряться?
          if ((mas[i][j]>mas[i][j-1]) and (mas[i][j]<mas[i][j+1])) then
            writeln ('stroka ',i,' stolbec ',j,' element ',mas[i][j]);
        end;
    end;
  readln;
end.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. массивы }{oTT@БЬ)Ч™ Помощь студентам 9 07.12.2015 20:00
Паскаль-массивы synister Помощь студентам 16 21.02.2011 18:36
массивы на паскаль gulsana-89@mail.ru Паскаль, Turbo Pascal, PascalABC.NET 1 05.10.2010 13:01
Массивы-Паскаль Айдар Помощь студентам 7 23.11.2009 18:49
Паскаль. Массивы deceiver Помощь студентам 3 08.03.2009 15:12