Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 355

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Помогите пожалуйста с задачей!
Дана целочисленная квадратная матрица. Определить минимум среди сумм модулей элементов диагоналей параллельных побочной диагонали матрицы.(оформить в виде процедуры)

sesyriti Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: sesyriti (статус: Посетитель)
Вопрос отправлен: 1 июня 2011, 11:56
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Толяныч

Здравствуйте, sesyriti!
Не пользы студентов ради а токмо разминки пальцев для :

Приложение:
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils;
  7. const N = 5 ;
  8. type Matrix = Array[1..N,1..N] of integer ;
  9. var
  10. NN,i,j,ir : integer ;
  11. Arr : Matrix ;
  12.  
  13. procedure MinSum (nx: integer; a : Matrix; var irez : integer) ;
  14. var i1,ix,iy,fin1,s0,s1 : integer ;
  15. begin
  16. fin1 := nx + nx ; s1 := 9999999 ;
  17. for i1 := 2 to fin1 do
  18. begin
  19. s0 := 0 ;
  20. for ix := 1 to fin1 do
  21. begin
  22. iy := i1-ix ;
  23. if ((ix>nx) or (iy>nx) or (iy<1))then continue ;
  24. s0 := s0 + Abs(a[iy][ix]) ;
  25. end ;
  26. if s0<s1 then s1 := s0 ;
  27. Writeln (i1 : 4, s0 : 4,s1 : 4) ; // *** //
  28. irez := s1 ;
  29. end ;
  30. end ;
  31.  
  32. begin
  33. Randomize ;
  34. for i := 1 to 5 do
  35. for j := 1 to 5 do
  36. Arr[i][j] := Round ((Random-0.5)*100.0) ;
  37. for i := 1 to 5 do
  38. begin
  39. for j := 1 to 5 do Write ( Arr[i][j] : 4 ) ;
  40. Writeln
  41. end ;
  42. Writeln ;
  43. MinSum (5,Arr,ir) ;
  44. Writeln ;
  45. Writeln ('Min Summa = ',ir) ;
  46. Readln (i)
  47. end.
  48.  
  49.  


Ответ отправил: Толяныч (статус: 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™

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™

min@y™ (статус: Доктор наук), 1 июня 2011, 13:29 [#3]:

Цитата (Толяныч):

Жаль мне студней, у которых нету интернету в каком-нить Задрюпинске. Неужто сами думают ?

Когда я учился, у меня интернета не было. У меня дома даже телефона не было. И ничо, нормально учился.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Толяныч

Толяныч (статус: 4-ый класс), 1 июня 2011, 17:09 [#4]:

За оптимальность не ручаюсь. Но работает. Если убрать
Writeln там, где комментарий // ** ( 27 стр. ) , не будет отображать в цикле процесс поиска минимума, а останется только итоговый вывод.
bugmenot

bugmenot (статус: 3-ий класс), 1 июня 2011, 17:23 [#5]:

Цитата (Толяныч):

За оптимальность не ручаюсь. Но работает. Если убрать
Writeln
Этож лаба, а так - да, вывод в консоль очень медленный.
виконання програми розпочинається з того самого мiсця, де призупинилося.

Толяныч

Толяныч (статус: 4-ый класс), 1 июня 2011, 17:40 [#6]:

И у меня ошибок нет клянусь бородой !
ierihon1

ierihon1 (статус: 1-ый класс), 1 июня 2011, 17:42 [#7]:

не спорю) проверял)
Толяныч

Толяныч (статус: 4-ый класс), 1 июня 2011, 23:03 [#8]:

А стартеру опять инет отключили за неуплату
Толяныч

Толяныч (статус: 4-ый класс), 2 июня 2011, 12:36 [#9]:

Вот и помогай им, и -- ни ответа, ни привета. Хватит благотворительности. Задрало.
bugmenot

bugmenot (статус: 3-ий класс), 2 июня 2011, 13:00 [#10]:

Цитата (Толяныч):

А стартеру опять инет отключили за неуплату
В армию ушел :­-­D
виконання програми розпочинається з того самого мiсця, де призупинилося.

Толяныч

Толяныч (статус: 4-ый класс), 3 июня 2011, 14:25 [#11]:

Вернется уже под другим ником. Если сержант позволит :-)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:37
Выполнено за 0.03 сек.