Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 25.12.2011, 01:23   #1 (permalink)
Мартулька
Новичок
 
Регистрация: 25.12.2011
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите решить задачу на паскале

Условия задачи таковы:Написать подпрограмму, которая в двумерном массиве А(N,M) целых чисел, таком, что для всех I от 1 до N , J от 1 до М-1 выполняется А(I,J)>A(I,J+1) и для всех I от 1 до N-1 выполняется A(I,M)>A(I+1,M), находит все элементы A(I,J), равные J+I, или устанавливает, что таких элементов нет.
Есть часть решения задачи, но не полная=( помогите прошу очень нужно выполнить ее верно(

for k:=1 to n do begin
| b[k]:=1;
end;
eq := true;
for k := 2 to n do begin
| eq := eq and (a[1][b[1]] = a[k][b[k]]);
end;
{инвариант: оставшиеся части пересекаются, т.е. существует
такое х, что для всякого i из [1..n] найдётся j из [1..m],
не меньшее b[i], для которого a[i][j] = х; eq <=> первые
элементы оставшихся частей равны}
while not eq do begin
| s := 1; k := 1;
| {a[s][b[s]] - минимальное среди a[1][b[1]]..a[k][b[k]]}
| while k <> n do begin
| | k := k + 1;
| | if a[k][b[k]] < a[s][b[s]] then begin
| | | s := k;
| | end;
| end;
| {a[s][b[s]] - минимальное среди a[1][b[1]]..a[n][b[n]]}
| b [s] := b [s] + 1;
| for k := 2 to n do begin
| | eq := eq and (a[1][b[1]] = a[k][b[k]]);
| end;
end;
writeln (a[1][b[1]]);
Мартулька вне форума   Ответить с цитированием

Старый 25.12.2011, 01:23
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Можете узнать больше информации о этой проблеме, почитав похожие темы

Решить задачу в Паскале
Помогите решить задачу в Паскале
Помогите решить задачу на Паскале
Помогите решить задачу в паскале
Не могу решить задачу на паскале

Старый 25.12.2011, 02:12   #2 (permalink)
Мартулька
Новичок
 
Регистрация: 25.12.2011
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Помогите прошу(((((((((((((((((((
Мартулька вне форума   Ответить с цитированием
Старый 25.12.2011, 09:18   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Мартулька Посмотреть сообщение
Помогите прошу(((((((((((((((((((
Как говорил незабвенный Карлсон, - "Спокойствие, только спокойствие!".
Что касается выложенного кода, то там такого понаверчено, что сам черт ногу (или хвост) сломит. А задачка-то школьная. Вот я нарисовал программку, которая ее решает - а уж в подпрограмму переделывайте сами. Если, конечно, устроит.
Код:
CONST
 M=15; {number of lines}
 N=18; {number of columns}
VAR
 A:Array[1..M,1..N] of Word;
 i,j:Byte;
 Nc:Word;

Function Mx(z1,z2:Word):Word;
begin
 If z1>z2 then Mx:=z1 else Mx:=z2;
end;

BEGIN
 Randomize;
 A[M,N]:=0;
 For j:=N-1 downto 1 do
  A[M,j]:=A[M,j+1]+1+Random(3);
 For i:=M-1 downto 1 do
  A[i,N]:=A[i+1,N]+1+Random(3);
 For i:=M-1 downto 1 do
  For j:=N-1 downto 1 do
   A[i,j]:=Mx(A[i+1,j],A[i,j+1])+1+Random(3);

 For i:=1 to M do
  begin
   For j:=1 to N do
    Write(A[i,j]:4);
   Writeln;
  end;
 Writeln;

 Nc:=0;
 For i:=1 to M do
  For j:=1 to N do
   If A[i,j]=i+j then
    begin
     Writeln('A[',i:2,',',j:2,'] = i+j = ',A[i,j]);
     Inc(Nc);
    end;
 Writeln;
 Writeln(Nc,' elements');
 Readln;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 25.12.2011, 16:40   #4 (permalink)
Мартулька
Новичок
 
Регистрация: 25.12.2011
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо вам большое.Только подпрограмму я написать смогу ли=)
Мартулька вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 03:33.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.