0 / 0 / 0
Регистрация: 12.01.2012
Сообщений: 15
1

как правильно передать значение функции в последующие процедуры во входных параметрах.

24.03.2012, 17:28. Показов 1072. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
у меня есть код программы в которой нужно упорядочить строки матрицы построчно по возрастанию.я сделала из нее программу с процедурами и функциями.с помощью функции я ввожу размер матрицы и не знаю как правильно передать значение функции в последующие процедуры во входных параметрах.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Program fgh;
Const
  N=5;
  M=10;
type
  mas=array[1..N,1..M] of integer;
var
  matr:mas;
  razm1,razm2:integer;
{----------------------------------------------------------------}
 
Function Vvod(B:integer):integer;
var
max:integer;
s:string;
er:integer;
 
begin
repeat
  readln(s);
  val (s,max,er);
  if er<>0 then
     writeln('Вы ошиблись.Введите число')
  else
    if max>B then
       writeln('Ошибка. Значение должно быть < = B');
until(er=0) and (max<=B);
Vvod:=max;
end;
 
 
{----------------------------------------------------------------}
 
Procedure Inp(nmax,mmax:integer; var a:mas);
var
  i:integer;
  j:integer;
begin
   for i:=1 to nmax do
     for j:=1 to mmax do
     begin
       write('Ввод матрицы *[', i,',', j,']:');
       readln(a[i,j]);
     end;
end;
{-----------------------------------------------------------------}
 
Procedure Out(nmax,mmax:integer; a:mas);
var
  i:integer;
  j:integer;
begin
writeln('Вывод матрицы**');
   begin
   for i:=1 to nmax do
     begin
       for j:=1 to mmax do
         write (a[i,j]:4,'  ');
         writeln;
     end;
   end;
end;
{-----------------------------------------------------------------}
 
Procedure Ypor(nmax,mmax:integer; a:mas);
var
  k:integer;
  temp:integer;
  i:integer;
  j:integer;
begin
   writeln('Упорядоченная матрица*: ');
   for i:= 1 to nmax do
     for j:=mmax-1 downto 1 do
       for k:=1 to j do
         if a[i,k]>a[i,k+1] then
         begin
           temp:= a[i,k];
            a[i,k] := a[i,k+1];
            a[i,k+1] :=temp;
         end;
   for i := 1 to nmax  do
     begin
       for j := 1 to mmax do
       write(a[i,j]:4, ' ');
       writeln;
     end;
end;
 
{-----------------------------------------------------------------}
{Главная программа}
begin
write('‚ўҐ¤ЁвҐ  n=');
razm1:=Vvod(N);
write('‚ўҐ¤ЁвҐ  m=');
razm2:=Vvod(M);
Inp(razm1,razm2,matr);
Out(razm1,razm2,matr);
Ypor(razm1,razm2,matr);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2012, 17:28
Ответы с готовыми решениями:

Можно ли обратиться из процедуры или функции к переменной, значение которой было передано в параметрах?
Здравствуйте. Можно ли в FreePascal обратиться из процедуры или функции к переменной, значение...

Ошибка компиляции при неправильных входных параметрах функции
Доброго времени суток, уважаемые форумчане! Возник следующий вопрос. Пусть имеется некоторый...

Как передать вектор в параметрах функции класса?
есть функция bool ReadDir(const std::wstring &amp;, const std::wstring&amp; , int, bool,bool ,...

Обработать пробелы во входных параметрах
Программа вызывается из контекстного меню. Если файл содержит пробелы в названии - программа выдает...

1
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
24.03.2012, 18:09 2
Непонятно зачем это нужно, вводили бы размеры в процедуре Inp.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Program fgh;
Const
  N=5;
  M=10;
type
  mas=array[1..N,1..M] of integer;
var
  matr:mas;
  razm1,razm2:integer;
{----------------------------------------------------------------}
 
Function Vvod(B,k:integer):integer;
var
max:integer;
s:string;
er:integer;
 
begin
repeat
  write('Введите размер ',k,' ');
  readln(s);
  val (s,max,er);
  if er<>0 then
     writeln('Вы ошиблись.Введите число')
  else
    if max>B then
       writeln('Ошибка. Значение должно быть < = B');
until(er=0) and (max<=B);
Vvod:=max;
end;
 
 
{----------------------------------------------------------------}
 
Procedure Inp(nmax,mmax:integer; var a:mas);
var
  i:integer;
  j:integer;
begin
   for i:=1 to nmax do
     for j:=1 to mmax do
     begin
       write('Ввод матрицы *[', i,',', j,']:');
       readln(a[i,j]);
     end;
end;
{-----------------------------------------------------------------}
 
Procedure Out(nmax,mmax:integer; a:mas);
var
  i:integer;
  j:integer;
begin
writeln('Вывод матрицы**');
   begin
   for i:=1 to nmax do
     begin
       for j:=1 to mmax do
         write (a[i,j]:4,'  ');
         writeln;
     end;
   end;
end;
{-----------------------------------------------------------------}
 
Procedure Ypor(nmax,mmax:integer; a:mas);
var
  k:integer;
  temp:integer;
  i:integer;
  j:integer;
begin
   writeln('Упорядоченная матрица*: ');
   for i:= 1 to nmax do
     for j:=mmax-1 downto 1 do
       for k:=1 to j do
         if a[i,k]>a[i,k+1] then
         begin
           temp:= a[i,k];
            a[i,k] := a[i,k+1];
            a[i,k+1] :=temp;
         end;
   for i := 1 to nmax  do
     begin
       for j := 1 to mmax do
       write(a[i,j]:4, ' ');
       writeln;
     end;
end;
 
{-----------------------------------------------------------------}
{Главная программа}
begin
razm1:=Vvod(N,1);
razm2:=Vvod(M,2);
Inp(razm1,razm2,matr);
Out(razm1,razm2,matr);
Ypor(razm1,razm2,matr);
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2012, 18:09
Помогаю со студенческими работами здесь

Передать целый массив в качестве входных параметров для функции main()?
Было рабочее оконное приложение Qt, теперь всю реализацию &quot;впихнуть&quot; в консольное приложение C++((...

Универсальный метод для разных входных параметрах
Здравствуйте! Есть такой код, я уже частично его приводил using System; using...

Как правильно передать значение ' 123' ?
как правильно передать значение ' 123' str=' 123' //строка из 6 символов передаем...

Значение по умолчанию в параметрах функции
В общем, изучаю односвязные списки и дело в том, что имеется небольшая проблема, при самом вызове...

Как правильно передать подсчитанное значение массива в класс?
в методе ReadData я считываю файл и заношу данные в двумерный массив massiv, инициализирую тоже в...

Как правильно описывать функции и процедуры в *.dll
Доброго дня всем! Вопрос такой: Как правильно описать функцию или процедуру в динамической...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru