Помощь - Поиск - Пользователи - Календарь
Полная версия: Массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Nalis
Нужно разобраться в одной программке-
Дан массив С(6,6). Определить количество «особых» элементов массива, считая элемент «особым», если в его строке слева от него находятся элементы меньше него, а справа - больше.
Начало есть,.но как посчитать без понятия nea.gif
Program 1;
uses crt;

const
  size_row = 6;
  size_col = 6;

type
  trow = array[1 .. size_row] of integer;
  tmatrix = array[1 .. size_col] of trow;

procedure swap_cols(var mx: tmatrix;
          const i, j: integer);
  var T: trow;
  begin
    T := mx[i]; mx[i] := mx[j]; mx[j] := T
  end;

procedure print(var mx: tmatrix);
  var i, j: integer;
  begin
    for i := 1 to size_row do
      begin
        for j := 1 to size_col do
          write(mx[j][i]:4);
        writeln
      end;
  end;

var
  mx   : tmatrix;
  i, j : integer;
  n, z : integer;
  t    : text;
r: array [1..500] of Real;
s: Real;
ArrayOfInteger: Array [1..100, 1..100] of Integer;

begin
 clrscr;
 n := 0;
 assign (t, 'input.txt');
 reset (t);
  for i := 1 to size_col do
   for j := 1 to size_row do
  	read (t, mx[i][j]);
 close (t);



       writeln ;
   writeln('ishodn. matrica:');
   print(mx);  
Ozzя
Матрицы
volvo
Цитата
Начало есть
Начни заново... Компилятор споткнется уже на ПЕРВОЙ строке !!!
Nalis
Цитата(volvo @ 15.06.2007 13:44) *

Начни заново... Компилятор споткнется уже на ПЕРВОЙ строке !!!

Это начало я взял из практически аналогичной программки....только вторую часть хз как сделать mega_chok.gif
volvo
Я еще раз говорю: ты добавил первой строку, которая не будет компилироваться - нажми на F9 и убедись... Кроме этого - та программа, откуда ты скопировал начало была предназначена для быстрого обмена местами столбцов матрицы, тебе это не нужно - так что начинай заново, чтоб не было потом мучительно больно, когда твою программу "зарубят"...

А основной цикл будет таким:
count := 0;
for i := 1 to 6 do begin
  for j := 1 to 6 do begin
      ok := true;
      for k := 1 to j - 1 do ok := ok and (mx[i, k] < mx[i, j]);
      for k := j + 1 to 6 do ok := ok and (mx[i, j] < mx[i, k]);

      if ok then inc(count);
  end;
end;

Nalis
Цитата(volvo @ 15.06.2007 20:25) *

Я еще раз говорю: ты добавил первой строку, которая не будет компилироваться - нажми на F9 и убедись... Кроме этого - та программа, откуда ты скопировал начало была предназначена для быстрого обмена местами столбцов матрицы, тебе это не нужно - так что начинай заново, чтоб не было потом мучительно больно, когда твою программу "зарубят"...

А основной цикл будет таким:
count := 0;
for i := 1 to 6 do begin
  for j := 1 to 6 do begin
      ok := true;
      for k := 1 to j - 1 do ok := ok and (mx[i, k] < mx[i, j]);
      for k := j + 1 to 6 do ok := ok and (mx[i, j] < mx[i, k]);

      if ok then inc(count);
  end;
end;



Блин вот придираетесь то)))Да понял я, что программку назвал неправильно) Program topik; пускай будит wink.gif Плиииз напишите завтра уже сдавать сразу 2 проги)
мисс_граффити
а где ж ты весь семестр был?... злые люди к паскалю не подпускали?
лично я не считаю фразу "завтра сдавать" поводом делать все за тебя... тем более что основную часть уже дали.

З.Ы. Извините за грубость. Просто уже надоело одно и то же везде.
Nalis
Цитата(мисс_граффити @ 17.06.2007 13:50) *

а где ж ты весь семестр был?... злые люди к паскалю не подпускали?
лично я не считаю фразу "завтра сдавать" поводом делать все за тебя... тем более что основную часть уже дали.

З.Ы. Извините за грубость. Просто уже надоело одно и то же везде.

Злые люди подпускали к паскалю, но разобраться в нём так и не удалось)Благо что паскаль в этом семестре заканчивается и я думаю больше к вам не обращусь))Вот тем более основную часть вы мне дали, так что грех не докончить начатое, не правда ли? give_rose.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.