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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2018, 22:56   #1
vaselisa162000
Пользователь
 
Регистрация: 28.04.2018
Сообщений: 10
По умолчанию Использование процедур для обработки массивов

Проверьте пожалуйста
Ввод исходных и вывод результирующих матриц производить с помощью соответствующих процедур или функций. Задания можно выполнять с помощью функций.
Задание:
Составить подпрограмму определения адресов элементов, значения которых лежат в пределах от p до q, в одномерном массиве А. С помощью этой подпрограммы определить и вывести на экран адреса соответствующих элементов в столбцах двумерной матрицы B.
Код:
program laba8;
  uses
    crt;
  const
    L=10;
  type
    mas=array[1..l] of integer;
    matr=array[1..l,1..l] of integer;
  var
    Adr:mas;
    M:matr;
    i,j,p,q,n, maxn, maxi:integer;
  procedure Adress(a:mas; p,q:integer; var b:mas);
    var
      i,j:integer;
    begin
      j:=1;
    for i:=1 to n do
      if (a[i]>=p) and (a[i]<=q) then
        begin
          b[j]:=i;
          j:=j+1;
        end;
    end;
  begin
    clrscr;
    randomize;
    writeln('vvedite razmer matrici');
    readln(n);
    writeln('Ishodniy massiv:');
    for i:=1 to n do
      begin
        for j:=1 to n do
          begin
            M[i,j]:=random(100);
            write(M[i,j]:4);
          end;
          writeln;
      end;
    writeln('vvedite granici:');
    readln(p,q);
    writeln('adresa iscomih elementov [',p,',',q,'],');
    for i:=1 to n do
      begin
        Adress(M[i],p,q,Adr);
        j:=1;
        while adr[j]<>0 do
          begin
            writeln('(',i,',',adr[j],')');
            Adr[j]:=0;
            j:=j+1;
          end;
            end;
  readln;
end.
vaselisa162000 вне форума Ответить с цитированием
Старый 22.05.2018, 21:12   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Этим кодом весь массив заталкивается в стек
Код:
procedure Adress(a:mas; p,q:integer; var b:mas);
Этим кодом в стек заталкивается только адрес массива
Код:
procedure Adress(const a:mas; p,q:integer; var b:mas);
Можно сделать в виде процедур:
- инициализацию рандомом матрицы: InitMatr();
- вывод матрицы на экран: prnMatr().
- определения адресов элементов, значения которых лежат в пределах от p до q: Search().

Это личное мнение.
В детали не лез.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приложение для обработки массивов - Delphi avatar54 Помощь студентам 1 11.12.2017 19:16
использование циклов для обработки данных -Светка- Microsoft Office Excel 2 06.12.2012 00:04
Создание приложений для обработки массивов anastasiya__S Помощь студентам 0 07.04.2011 20:18
использование процедур и функций для работы с массивами.....Паскаль.... КиношкА Помощь студентам 6 13.01.2008 14:23