1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Program prim2;
{Даны 3 двумерных массива A, B, C разной длины.
Разработать процедуру ввода массивов и вычисления
максимальных значений каждого из массивов. Полученные
максимумы передать в программу, в которой найти
максимум среди 3-х максимальных значений.
Результаты выдать на экран}type mas=array[1..50] of integer;
Var
A,B,C : mas;
mo,ma,mb,mc : integer;
procedure Pm(A:mas; Var m:integer);
Var
i,n,imax: integer;
Begin
Write('введите длину массива n ');
Readln(n);
Writeln('введите элементы массива ');
For i:=1to n do
Read(A[i]);
imax:=1;
for i:=1to n doif a[i]<a[imax] then imax:=i;
end;
Begin
Pm(A, ma );
Pm(B, mb);
Pm(C, mc);
writeln('max a=', ma,' max b=', mb,' max c=',mc);
mo:=0;
if ma>mb then{a - большее}if ma>mc then mo:=ma else mo:=mc
else{b - большее}if mb>mc then mo:=mb else mo:=mc;
{вывод результатов}
writeln('max itog(',ma, ',', mb, ',', mc, ')=',mo)
End.
Во-первых: массив должен передаваться как Var-параметр, иначе ты его что вводишь, что не вводишь - он не запоминается. Во-вторых: у тебя должен находиться максимум, ты зачем-то заходишь минимум. Знак поменять надо. И в третьих: нашла imax, теперь M := A[imax] надо делать в самом конце процедуры. Иначе значение не передается назад...
Во-первых: массив должен передаваться как Var-параметр, иначе ты его что вводишь, что не вводишь - он не запоминается. Во-вторых: у тебя должен находиться максимум, ты зачем-то заходишь минимум. Знак поменять надо. И в третьих: нашла imax, теперь M := A[imax] надо делать в самом конце процедуры. Иначе значение не передается назад...
Спасибо большое за советы, со знаком действительно напортачила. Насчет Var-теоретически понимаю, а на практике как сделать не знаю(((. насчет M := A[imax] вообще не поняла. Свою программу пыталась сделать на основании примера в учебном материале..она работает
Program zad;
//Даны 5 двумерных массивов A, B, C, D, E разной длины.
//Разработать процедуру ввода массивов и вычисления средних
//значений среди отрицательных чисел этих массивов.
//Полученные средние значения передать в программу, в
//которой найти общую сумму всех полученных средних значений.
//Результаты выдать на экран
Type mas=array [1..100] of real;
Var
A,B,C,D,E: mas;
SRa, SRb, SRc, SRd, SRe, SRo: real; //средние значения массивов
procedure SRED(A:mas; Var SR:real);
Var i,n,k: integer;
Begin
Write('введите длину массива n= ');
Readln(n);
Writeln('введите элементы массива ');
SR:=0;k:=0;
For i:=1to n dobegin
Read(A[i]);
if A[i]<0thenbegin
Sr:=SR+A[i];
k:=k+1; //считаем отрицательные
end;
end;
if k=0then SR:=0//если нет отрицательных
else SR:=SR/k;
end;
Begin
SRED(A, SRa);
SRED(B, SRb);
SRED(C, SRc);
SRED(D, SRd);
SRED(E, SRE);
writeln('SrA=',Sra:8:2,' SRB=',SRb:8:2,' SRC=',Src:8:2,' SRD=',SRd:8:2,' SRE=',SRe:8:2);
SRo:=0;
SRo:=Sra+SRb+Src+SRd+SRe;
writeln ( 'итог программы =' , SRo:8:2)
end.
procedure Pm(VAR A:mas; Var m:integer); // <--- Раз
Var
i,n,imax: integer;
Begin
Write('введите длину массива n ');
Readln(n);
Writeln('введите элементы массива ');
For i:=1to n do
Read(A[i]);
imax:=1;
for i:=1to n doif a[i] {<}> a[imax] then imax:=i; // <--- Два
M := A[imax] // <--- Три
end;
procedure Pm(VAR A:mas; Var m:integer); // <--- Раз
Var
i,n,imax: integer;
Begin
Write('введите длину массива n ');
Readln(n);
Writeln('введите элементы массива ');
For i:=1to n do
Read(A[i]);
imax:=1;
for i:=1to n doif a[i] {<}> a[imax] then imax:=i; // <--- Два
M := A[imax] // <--- Три
end;