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

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

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

Delphi.int.ru Expert

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

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

#   

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


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

Подробнее »



Вопрос # 3 581

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

Здравствуйте!
Помогите мне пожалуйста решить задачу: даны натуральныое число n, целочисленная квадратная матрица порядка n.Получить b1 ,..., bn, где b1 - это наименьшее из значений элементов i-ой строки матрицы до элемента, принадлежащего главной диагонали включительно.

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

Вопрос задал: nnurik (статус: Посетитель)
Вопрос отправлен: 25 декабря 2009, 00:55
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Ланда, я сёдня добрый (рождество всё-таки, хоть и католическое)...
Лови готовую лабу:

program p3581;
 
{$APPTYPE CONSOLE}
 
{
даны натуральныое число n, целочисленная квадратная матрица порядка n.
Получить b1 ,..., bn, где bi - это наименьшее из значений элементов i-ой
строки матрицы до элемента, принадлежащего главной диагонали включительно.
}
 
const
  n = 5;
 
type
  TMatrix = array[0..n - 1, 0..n - 1] of Integer;
  TVector = array[0..n - 1] of Integer;
 
function GetMinCell(const X: TMatrix; const Line: Integer): Integer;
var
  Min, j: Integer;
begin
  Min:= X[Line, 0];
  for j:= 0 to Line do
    if X[Line, j] < Min
      then Min:= X[Line, j];
 
  GetMinCell:= Min;
end;
 
procedure RandomMatrix(var X: TMatrix);
var
  i, j: Integer;
begin
  for i:= 0 to n - 1 do
    for j:= 0 to n - 1 do
      X[i, j]:= Random(51) - 25;
end;
 
procedure PrintMatrix(const X: TMatrix);
var
  i, j: Integer;
begin
  WriteLn;
 
  for i:= 0 to n - 1 do
    begin
      for j:= 0 to n - 1 do
        Write(X[i, j]: 4);
 
      WriteLn;  
    end;
  WriteLn;
end;
 
procedure PrintVector(const V: TVector);
var
  i: Integer;
begin
  WriteLn;
 
  for i:= 0 to n - 1 do
    Write(V[i]: 4);
 
  WriteLn;
end;
 
var
  M: TMatrix;
  B: TVector;
  Index: Integer;
 
begin
  RandomMatrix(M);
  WriteLn('  Source matrix [', n, 'x', n, ']: ');
  PrintMatrix(M);
 
  for Index:= 0 to n - 1 do
    B[Index]:= GetMinCell(M, Index);
 
  WriteLn('  Result vector Bi (i = 1...', n, '): ');
  PrintVector(B);
 
  ReadLn;
end.

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 25 декабря 2009, 08:53
Оценка за ответ: 5

Комментарий к оценке: благодарю...

Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 25 декабря 2009, 08:22; участников в обсуждении: 1.
min@y™

min@y™ (статус: Доктор наук), 25 декабря 2009, 08:22 [#1]:

Цитата (nnurik):

где b1 - это наименьшее из


Неверно переписал из методички. Здесь не b1, a bi.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

25 декабря 2009, 08:37: Вопрос перемещён из тематического раздела Pascal » Программирование на Pascal в раздел Лабораторный практикум модератором min@y™ Причина: 100%-ная лаба

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

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