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

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

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

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

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

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

Задание: Составить подпрограмму определения адресов элементов, значения которых лежат в пределах от p до q, в одномерном массиве А. С помощью этой подпрограммы определить и вывести на экран адреса соответствующих элементов в столбцах двумерной матрицы B.
Проверьте пожалуйста, у меня как-то странно выводятся адреса соответствующих элементов
Код:
Program laba91;
  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 вне форума Ответить с цитированием
Старый 01.06.2018, 09:14   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

чтобы быть уверенным что в массиве ровно то что нужно(и сколько нужно), его надо бы сначала "очистить" (заполнить каким-то ненужным и известным числом).
Цитата:
Код:
       while adr[j]<>0 do
видимо это должен 0.
и перед каждым поиском.

Цитата:
Код:
mas=array[1..l] of integer;
массив из одного единственного элемента?..
и матрица такая же?..
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 01.06.2018 в 09:18.
evg_m на форуме Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование процедур для обработки массивов vaselisa162000 Паскаль, Turbo Pascal, PascalABC.NET 1 22.05.2018 21:12
Приложение для обработки массивов - Delphi avatar54 Помощь студентам 1 11.12.2017 19:16
Создание приложений для обработки массивов anastasiya__S Помощь студентам 0 07.04.2011 20:18
использование процедур и функций для работы с массивами.....Паскаль.... КиношкА Помощь студентам 6 13.01.2008 14:23