Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 21.05.2018, 23:56   #1
vaselisa162000
Пользователь
 
Регистрация: 28.04.2018
Сообщений: 10
Репутация: 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, 22:12   #2
ViktorR
Профессионал
 
Регистрация: 23.10.2010
Сообщений: 1,137
Репутация: 603
По умолчанию

Этим кодом весь массив заталкивается в стек
Код:

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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


08:10.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru