• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Задача на процедуры и функции Delfi

  • Автор темы Автор темы karulina
  • Дата начала Дата начала

karulina

Ученик
Регистрация
9 Апр 2012
Сообщения
3
Реакции
0
Баллы
0
Задача на процедуры и функции Delfi

помогите пожалуйста исправить код, чтобы работал правильно. моя задача. в матрице размером 20на30 упорядочить строки по неубыванию максимальных элементов строк.(если я правильно поняла из условия то неубывание это возрастание, так?) если нет всё равно помогите пожалуйста переписать код на правильный, почему то не упорядочивает строки и вообще посмотрите что тут и как делать - срочно нужно сдать задачу!.. а я очень сильно запуталсь...

PHP:
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  Windows,
  SysUtils;

const
n=20;
m=30;
 
type
telem=Integer;
mas=array[1..n] of telem;
matr=array[1..m] of mas;

var b:mas;
 
 
function max_v_strok(a:matr):Real; {процедура поиска максимума в каждой строке}
var k,i,j:Integer;
    max:telem;
begin
  for j:=1 to n do
    begin
      max:=a[1,j];
      for i:=2 to m do
          begin
            if a[i,j]>max then max:=a[i,j];
          end;
      writeln('Максимальный эл-т в ',j,' строке: ',max);
      b[k]:=max; {запись максимумов в отдельный массив}
    end;
max_v_strok:=max;
end;
 
Procedure uporad_strok;{процедура сортировки строк}
var k,i,j:Integer;
a:matr;
tmp:telem;
begin
  for k:=1 to n do {открываем цикл по максимумам сравниваем элементы}
  if b[k]>b[k+1] then
  begin
    for i:=1 to m do
      begin
        tmp:=a[i,k]; {сортируем строки по возрастанию}
        a[i,k]:=a[i,k+1];
        a[i,k+1]:=tmp;
      end;
  end;
end;
 
procedure Ptint_matr (var a:matr); {процедура печати новой матрицы}
var i,j:Integer;
begin
  for i:=1 to m do
    begin
      for j:=1 to n do write(a[i,j],' ');
      Writeln;
    end;

end;
var
i,j:Integer;
a:matr;

begin
SetConsoleOutputCP(1251);
Writeln('Исходная матрица');
Randomize; {автоматическая генерация матрицы}
for i:=1 to m do
  begin
    for j:=1 to n do
        begin
          a[i,j]:=random(30);
          write(a[i,j],' ');
        end;
    Writeln;
  end;
 
Writeln('Максимальные элементы в каждой строке');
max_v_strok(a);
uporad_strok();
Writeln('Конечная матрица');
Ptint_matr(a);
Readln;
end.
 
Назад
Сверху