Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2020, 09:29   #1
Мiradl
Новичок
Джуниор
 
Регистрация: 24.01.2020
Сообщений: 1
По умолчанию pascal

как сделать чтоб при изменение переменной m на 3 или более менялся размер матрицы 3x3 и тд

Код:
const n=2;
      m=2;
function max(a, b:integer):integer;
begin
if a>b then max:=a else max:=b;
end;
var a:array[1..n,1..m] of integer;
    f:array[1..n] of integer;
    i, j:integer;
    t:text;
begin
randomize;
assign(t,'matrix.txt');
rewrite(t);
writeln(t,'Матрица');
writeln('Матрица');
for i:=1 to n do
    begin
         for j:=1 to m do
             begin
                  a[i,j]:=10+random(90);
                  write(t,a[i,j]:3);
                  write(a[i,j]:3);
             end;
         writeln(t,'');
         writeln('');
    end;
for i:=1 to n do
f[i]:=max(a[i,1],a[i,2]);
writeln(t,'Массив максимальных в строках');
writeln('Массив максимальных в строках');
for i:=1 to n do
    begin
         write(t,f[i]:3);
         write(f[i]:3);
    end;
close(t);
end.
Мiradl вне форума Ответить с цитированием
Старый 24.01.2020, 09:36   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Примерно так можно, через инициализацию динамического массива при помощи setlength;
после операций с массивом очищаем память.

Немного модернизировал код и функцию.

Вводит, ищет максимум и выводит в строку и пишет в файл в одном цикле


Код:

function max(a, b, maxs: integer): integer;
begin
  if maxs < a then
    maxs := a;
  if b > maxs then maxs := b;
  Result := maxs;
end;



var
  a: array of array of integer;
  i, j, m, maxs: integer;
  t: text;
  s, s1: string;

begin
  
  writeln('Vvedite M: ');
  readln(m);
  
  
  if (m > 1) then begin
    s := '';
    s1 := '';
    
    randomize;
    assign(t, 'matrix.txt');
    rewrite(t);
    writeln(t, 'Матрица');
    
    writeln('Матрица');
    
    setlength(a, m); //инициализируем память под строки в массиве A
    
    
    for i := 0 to m - 1 do
    begin       
      
      for j := 0 to m - 1 do
      begin
        SetLength(a[i], m); // инициализируем память под столбец в массиве А, в строке i
        a[i, j] := 10 + random(90); //заполняем
        write(t, a[i, j]:3);
        write(a[i, j]:3);
        

//проверка на максимум
        if j > 0 then         
          maxs := max(a[i][j], a[i][j - 1], maxs) else
          maxs := a[i][0];        
        
      end;
      
      str(maxs, s); //перевод числа в строку s (будет только содержимое числа)
      s1 := s1 + s + ' '; //запоминаем в строку s1 текущий максимум
      
      writeln(t, '');
      writeln('');
    end;
    
    
    writeln(t, 'Массив максимальных в строках');
    writeln('Массив максимальных в строках');
    writeln(s1); //выводим все максимумы, которые в строке
    writeln(t, s1); //записываем все максимумы в файл
    
    a := nil; //освобождаем память массива
    close(t);
  end else
    writeln('Input count M >1');
end.
from dark to light)

Последний раз редактировалось Алексей_2012; 24.01.2020 в 10:34.
Алексей_2012 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Turbo Pascal/Free Pascal/PascalABC.NET как новый инструмент экстрасенсов Biohazard333 Свободное общение 5 25.09.2016 12:25
Построить алгоритм в виде блок-схем и написать соответствующую программу на языке Pascal / Pascal ABC IgorMyakota Паскаль, Turbo Pascal, PascalABC.NET 9 06.03.2014 07:32
pascal abc, pascal turbo. выборка данных из одного .txt в другой ТипичныйСтудент Помощь студентам 6 27.04.2013 15:29
Задача turbo pascal на тему: файлы с произвольным доступом в Pascal ExCiTeC Паскаль, Turbo Pascal, PascalABC.NET 0 28.01.2013 20:36
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28