Помощь - Поиск - Пользователи - Календарь
Полная версия: Поцедура+Массив\продолжение темы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
BoB@N
Условие задачи:
\Найти количество элементов в каждой строке, больших среднего арифметического элементов данной строки\
Примечание:
1)Массив задаётся по желанию.
2)Программа дожна быть составлена с использованием процедуры или функции.
mega_chok.gif
volvo
To: BoB@N
Здесь в чем проблема?
Пишешь функцию, которая возвращает среднее арифметическое заданной строки, и для каждой строки матрицы сначала вызываешь ее (и запоминаешь результат в какой-то переменной, например Average), а затем проходишь по строке и сравниваешь КАЖДЫЙ элемент с сохраненным значением (и если a[i, j] > Average то увеличить счетчик)... Это все, что нужно сделать.

Хотя бы попробуй, если все время ЗА тебя будут решать задачи, так в чем смысл?
BoB@N
Я реально не могу сделать это прогу...
Я уже думаю,что я брутально туп..(Может это и так)...
wacko.gif wacko.gif wacko.gif
Atos
Цитата
Я реально не могу сделать это прогу...
А пробовал? хоть что-нибудь напиисать.
Начнём с самого начала:
Цитата
Пишешь функцию, которая возвращает среднее арифметическое заданной строки,
Здесь что непонятно? Передача массива в функцию или алгоритм фунции?
BoB@N
Алгоритм??? blink.gif
volvo
Цитата
Алгоритм???

Сложить все элементы строки и разделить сумму на их количество?
BoB@N
Я сам забахую всю прогу...
cool.gif
BoB@N
smile.gif
Вот 95%-й исходник этой проги...
Трабл в следующем:
Программа работает только с массивом 2X2..
mad.gif

Код


Program Boban;
Uses crt;
var
sred:real;
k,sum,m,n,i,j:integer;
a:array[1..10,1..10]of integer;
Procedure MatrixOut(x,y:integer);
begin
writeln;
for i:=1 to x do
begin
for j:=1 to y do
Write(a[i,j]:8);
Writeln;
end;
Writeln;
end;
begin
clrscr;
Write('Vvedite razmer massiva (MxN):');
readln(m,n);
Writeln('Vvedite elementi massiva:');
for i:=1 to m do
for j:=1 to n do
begin
Write('A[',i,' ',j,']:=');
readln(a[i,j]);
end;
MatrixOut(m,n);
Write('Vvedite dannuy stroky *k*:');
readln(j);
for i:=1 to m do
begin
Writeln(a[i,j]);
sum:=a[i,j]+a[i-1,j];
end;
Writeln('Summa:',sum);
sred:=sum/m;
Writeln('Srednee znachenie dannoi stroki:',sred:1:1);

for i:=1 to m do
begin
if (sred<a[i,j-1]) and (sred<>a[i,j-1]) then
k:=k+1;
if (sred<a[i,j+1]) and (sred<>a[i,j+1]) then
k:=k+1;
end;
Writeln('Kolichestvo chisel bolschih srednego:',k);
readln;
END.
volvo
To: BoB@N
Цитата(Условие)
\Найти количество элементов в каждой строке, больших среднего арифметического элементов данной строки\

Не значит, что строка будет задаваться пользователем (что, собственно, и делается у тебя в программе)... Так что, извини, но твоя программа НЕрабочая на 95%...
BoB@N
Что-то??? yes2.gif
В условии не стоит вопрос о задавании массива Randomize или пользователем... no1.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.