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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2014, 16:54   #1
Ilai
Пользователь
 
Регистрация: 10.09.2014
Сообщений: 90
Восклицание Процедуры

Добрый день!
Подскажите пожалуйста, написал программу с двумя процедурами. А как теперь запустить эти процедуры-не знаю. Помогите пожалуйста.

Код:
Program Lab_6;
const n=8;
type matr=array[1..n,1..n] of integer;

Procedure Mt;

    var a:matr;
        i, j: byte;

    begin
    for i:=1 to n do
      for j:=1 to n do
        Read(a[i,j]);
        for i:=1 to n do
         begin
          for j:=1 to n do
          Write(a[i,j], ' ');
          Writeln;
          end;
      readln;
     end;

Procedure Sort;

    var a:matr;
    i, j, l: byte;
    b:integer;
    begin

for i:=1 to n-1 do
for l:=i+1 to n do
if a[i,1]>a[l,1] then
for j:=1 to n do
 begin
  b:=a[i,j];
  a[i,j]:=a[l,j];
  a[l,j]:=b;
  end;
  for i:=1 to n do
         begin
          for j:=1 to n do
          Write(a[i,j], ' ');
          Writeln;
          end;
         end;

var a:matr;
    x:byte;
    z: byte;

   begin
{Как здесь написать процедуры?}
  readln(z);
end.

Последний раз редактировалось Stilet; 23.11.2014 в 17:24.
Ilai вне форума Ответить с цитированием
Старый 23.11.2014, 17:16   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

В данном случае - никак. То есть можно вызвать процедуры вот так
Код:
begin
  Mt;
  Sort;
 readln(z);
 end.
Все сработает, процедуры вызовутся ( если там нет ошибок, я не проверял). Но это не будет иметь никаких внешних эффектов.
Матрицы a , объявляемые внутри процедур - они существуют только внутри их. И к матрице a, объявляемой в основной программе не имеют отношения, хоть и имеют то же имя и тип.

Вот если объявить так, то другое дело
Код:
 Procedure Mt(var a:matr);
// ....
 Procedure Sort(var a:matr);
type_Oleg вне форума Ответить с цитированием
Старый 23.11.2014, 17:34   #3
Ilai
Пользователь
 
Регистрация: 10.09.2014
Сообщений: 90
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
В данном случае - никак. То есть можно вызвать процедуры вот так
Код:
begin
  Mt;
  Sort;
 readln(z);
 end.
Все сработает, процедуры вызовутся ( если там нет ошибок, я не проверял). Но это не будет иметь никаких внешних эффектов.
Матрицы a , объявляемые внутри процедур - они существуют только внутри их. И к матрице a, объявляемой в основной программе не имеют отношения, хоть и имеют то же имя и тип.

Вот если объявить так, то другое дело
Код:
 Procedure Mt(var a:matr);
// ....
 Procedure Sort(var a:matr);
Всё! Сработало! Большое спасибо за помощь!
Ilai вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры и функции - Заданы три двумерных массива одинаковой размерности. Написать фукнции и процедуры их обработки sekirei Паскаль, Turbo Pascal, PascalABC.NET 8 21.11.2013 15:45
Определение имени процедуры из нутри самой процедуры RISagitov Microsoft Office Excel 8 28.09.2012 17:15
Использование имени процедуры в качестве параметра другой процедуры Alexey355 Помощь студентам 1 23.04.2011 13:59
закончить выполнение процедуры из тела другой процедуры Alaysor Общие вопросы Delphi 14 23.01.2011 05:26
Управляющие структуры, процедуры Function и процедуры Sub Natalo4ka Помощь студентам 0 17.05.2010 22:00