05.04.2015, 02:10 | #1 (permalink) |
Стандартный
Регистрация: 30.11.2008
Сообщений: 619
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 571
|
Помогите переписать программу через процедуру
Код:
Const nmax=20; Var A:array[1..nmax,1..nmax] of real; i,j,ik1,ik2,n:integer; sr,max1,max2:real; Begin write('Количество строк и столбцов: ');readln(n); For i:=1 to n do Begin For j:=1 to n do Begin A[i,j]:=random*10-5; write(A[i,j]:6:2); End; writeln; End; Repeat write('Индекс первого столбца: ');readln(ik1); Until ik1 in [1..n]; Repeat write('Индекс второго столбца: ');readln(ik2); Until ik2 in [1..n]; max1:=A[1,ik1]; For i:=2 to n do if A[i,ik1]>max1 then max1:=A[i,ik1]; max2:=A[1,ik2]; For i:=2 to n do if A[i,ik2]>max2 then max2:=A[i,ik2]; writeln('Max1 = ',max1:0:2); writeln('Max2 = ',max2:0:2); writeln('Абсолютная величина разности максимальных элементов: ',abs(max1-max2):0:4); readln; End. Пытался сделать сам, но запутался на передаче исходного массива в процедуру. Помогите переписать, пожалуйста. Заранее большое спасибо. |
05.04.2015, 02:10 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Однородные проблемы уже обсуждались, пожалуйста, обратите на них внимание Помогите заменить функцию на процедуру Переписать ретро Переписать двумерный масив в одномерный Подскажите как на и на чем можно написать программу SMS рассылок через интернет? |
05.04.2015, 09:40 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Только сначала - две ремарки. 1. Если в программе предполагается передача массива в подпрограмму, то следует тип такого массива переопределить, как это сделано у меня. 2. Если используется генератор случайных чисел, то НЕ ЗАБЫВАЕМ в начале программы ставить команду Randomize; Без этого он будет выдавать одно и то же каждый раз. Код:
Const nmax=20; Type Matrix=array[1..nmax,1..nmax] of real; Var A:Matrix; jk1,jk2,n:integer; max1,max2:real; Procedure Input_A(Ni:Integer; var Q:Matrix); var i,j:Integer; begin for i:=1 to Ni do begin for j:=1 to Ni do begin Q[i,j]:=random*10-5; write(Q[i,j]:6:2); end; writeln; end; end; Function Find_Max(p:Integer; Q:Matrix):Real; var i:Integer; max:Real; begin max:=Q[1,p]; for i:=2 to n do if Q[i,p]>max then max:=Q[i,p]; Find_Max:=max; end; Begin Randomize; write('Number of lines and columns: '); readln(n); writeln; Input_A(n,A); writeln; Repeat write(' First column index: '); readln(jk1); Until jk1 in [1..n]; Repeat write('Second column index: '); readln(jk2); Until jk2 in [1..n]; writeln; max1:=Find_Max(jk1,A); max2:=Find_Max(jk2,A); writeln('Max1 = ',max1:0:2); writeln('Max2 = ',max2:0:2); writeln; writeln('Absolute difference between maxima: ',abs(max1-max2):0:4); readln End. |
|
05.04.2015, 12:39 | #3 (permalink) | |
Стандартный
Регистрация: 30.11.2008
Сообщений: 619
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 571
|
Цитата:
2. А я как раз и забыл, стыд и срам Спасибо за помощь. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|