| 
| 
 | Вопрос # 5 355/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Помогите пожалуйста с задачей!
 Дана целочисленная квадратная матрица. Определить минимум среди сумм модулей элементов диагоналей параллельных побочной диагонали матрицы.(оформить в виде процедуры)
 
|  |   Вопрос задала: sesyriti (статус: Посетитель)Вопрос отправлен: 1 июня 2011, 11:56
 Состояние вопроса: открыт, ответов: 2.
 |  Ответ #1. Отвечает эксперт: Толяныч Здравствуйте, sesyriti!Не пользы студентов ради а токмо разминки пальцев для :
 Приложение:Переключить в обычный режим program Project1; {$APPTYPE CONSOLE} uses  SysUtils;const N = 5 ;type Matrix = Array[1..N,1..N] of integer ;var  NN,i,j,ir : integer ;  Arr : Matrix ; procedure MinSum (nx: integer; a : Matrix; var irez : integer) ; var i1,ix,iy,fin1,s0,s1 : integer ; begin   fin1 := nx + nx ; s1 := 9999999 ;   for i1 := 2 to fin1 do     begin       s0 := 0 ;       for ix := 1 to fin1 do          begin            iy := i1-ix ;            if ((ix>nx) or (iy>nx) or (iy<1))then continue ;            s0 := s0 + Abs(a[iy][ix]) ;          end ;       if s0<s1 then s1 := s0 ;       Writeln (i1 : 4, s0 : 4,s1 : 4) ;  // *** //       irez := s1 ;     end ; end ;  begin   Randomize ;   for i := 1 to 5 do      for j := 1 to 5 do        Arr[i][j] := Round ((Random-0.5)*100.0) ;   for i := 1 to 5 do      begin        for j := 1 to 5 do Write ( Arr[i][j] : 4 ) ;        Writeln      end ;   Writeln ;   MinSum (5,Arr,ir) ;   Writeln ;   Writeln ('Min Summa = ',ir) ;   Readln (i)   end.  
|  | Ответ отправил: Толяныч (статус: 4-ый класс)Время отправки: 1 июня 2011, 17:06
 
 |  Ответ #2. Отвечает эксперт: ierihon1 Здравствуйте, sesyriti!
 program Project1;
 
{$APPTYPE CONSOLE}
 
const n = 5;
 
type
  TMatrix = array[1..n,1..n] of integer;
  TArray = array[1..n+n-1] of integer;
 
var M:TMatrix;
    A:TArray;
    c:integer;
    min:integer;
 
procedure MakeMatrix(var M:TMatrix);
var i,j:integer;
begin
for i := 1 to n do
begin
  for j:= 1 to n do
    begin
      m[i,j]:=random(20)-10;
      write(m[i,j]:4);
    end;
  writeln;
end;
end;
 
procedure Diagonal(var M:TMatrix);
var i,j,k:integer;
begin
  for k:= n + n - 1 downto 1 do
      for i := 1 to n do
          for j := 1 to n do
            if k + i + j  = n + n + 1 then
              A[k]:=A[k]+Abs(M[i,j]);
 
for k := n + n - 1 downto 1 do
  if k <> n then
    write(A[k]:3);
 
c:=A[1];
writeln;
 
for k := 2 to n + n - 1 do
  if  (A[k]<c) and (k <> n) then
    min:=A[k]
  else
    min:=c;
writeln;
write('Min = ',min);
end;
 
begin
  randomize;
  MakeMatrix(M);
  writeln;
  Diagonal(M);
  readln;
end.А у меня такой вариант.. отображается без задержек и ошибок нет гарантированно)
|  | Ответ отправил: ierihon1 (статус: 1-ый класс)Время отправки: 1 июня 2011, 17:53
 
 |  
 Мини-форум вопросаВсего сообщений: 11; последнее сообщение — 3 июня 2011, 14:25; участников в обсуждении: 4. 
|   | min@y™ (статус: Доктор наук), 1 июня 2011, 11:59 [#1]: Цитата (sesyriti): Помогите пожалуйста с задачей!  Это что значит-то? Сделать лабу за тебя?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  1 июня 2011, 11:59: Вопрос перемещён из тематического раздела Pascal » Программирование на Pascal в раздел Лабораторный практикум » Pascal модератором min@y™ 
|   | Толяныч (статус: 4-ый класс), 1 июня 2011, 13:23 [#2]:Как  всегда. Жаль мне студней, у которых нету интернету в каком-нить Задрюпинске. Неужто сами думают ? |  
|   | min@y™ (статус: Доктор наук), 1 июня 2011, 13:29 [#3]: Цитата (Толяныч): Жаль мне студней, у которых нету интернету в каком-нить Задрюпинске. Неужто сами думают ?  Когда я учился, у меня интернета не было. У меня дома даже телефона не было. И ничо, нормально учился.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Толяныч (статус: 4-ый класс), 1 июня 2011, 17:09 [#4]:За оптимальность не ручаюсь. Но работает. Если убрать Writeln там, где комментарий // ** ( 27 стр. ) , не будет отображать в цикле процесс поиска минимума, а останется только итоговый вывод.
 |  
|   | bugmenot (статус: 3-ий класс), 1 июня 2011, 17:23 [#5]: Цитата (Толяныч): За оптимальность не ручаюсь. Но работает. Если убрать Этож лаба, а так - да, вывод в консоль очень медленный.Writeln
 виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  
|   | Толяныч (статус: 4-ый класс), 1 июня 2011, 17:40 [#6]:И у меня ошибок нет клянусь бородой ! |  
|   | ierihon1 (статус: 1-ый класс), 1 июня 2011, 17:42 [#7]:не спорю) проверял) |  
|   | Толяныч (статус: 4-ый класс), 1 июня 2011, 23:03 [#8]:А стартеру опять инет отключили за неуплату |  
|   | Толяныч (статус: 4-ый класс), 2 июня 2011, 12:36 [#9]:Вот  и  помогай  им,  и  -- ни ответа, ни привета.  Хватит благотворительности.  Задрало. |  
|   | bugmenot (статус: 3-ий класс), 2 июня 2011, 13:00 [#10]: Цитата (Толяныч): А стартеру опять инет отключили за неуплатуВ армию ушел :-D виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  
|   | Толяныч (статус: 4-ый класс), 3 июня 2011, 14:25 [#11]:Вернется  уже  под  другим  ником.  Если  сержант  позволит   |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |