Помощь - Поиск - Пользователи - Календарь
Полная версия: поиск седловых точек (в виде процедуры)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
RrgTt_fx32!b
Прошу не пинать... Долго рылся в поиске, но чтобы седловая точко находилась с помощью процедуры не нашел.

помогите с решением:
Дана целочисленная прямоугольная матрица, определить:
а) номера строк и столбцов всех седловых точек (оформить в виде процедуры)
b) сумму элементов в тех строках, которые содержат хотябы 1 отрицательный элемент (оформить в виде функции)
желательно как-нибудь попроще

со второй частью я почти разобрался, скажите только как сделать чтоб программа выводила сумму всех строк, в которых есть отрицательные эл-ты, а не первой как здесь
program qwerty;
uses crt;
const n=5;
m=5;
type
mass = array [1..n,1..m] of real;
var
a: mass;
s: real;
i,j: integer;
function SumElemVStrokaxKotSoderOtricElem
(n,m: integer): real;
var
s1: real;
i,j: integer;
begin
s1:=0;
for i:=1 to n do begin
for j:=1 to m do begin
if a[i,j]<0 then
for i:=1 to n do
s1:=s1+a[i,j];
SumElemVStrokaxKotSoderOtricElem:=s1;
end; end; end;

begin
clrscr;
writeln ('vvedite chisla');
for i:=1 to n do begin
for j:=1 to m do
readln(a[i,j]);
end;
s:=SumElemVStrokaxKotSoderOtricElem(n,m);
writeln ('s=',s:2:2);
readln;
end.
мисс_граффити
могу предложить такие варианты:
1) подпрограмма вычисляет только сумму строки, номер которой ей передается как параметр. все остальное делать в главной программе в цикле по строкам
2) сделать вместо функции процедуру и засунуть вывод внутрь нее
3) возвращать массив с суммами строк, содержащих отрицательные элементы.
RrgTt_fx32!b
мисс_граффити: да фиг с ней, со второй задачей, хоть что-то считает.
Ты седловые точки можешь сделать в виде процедуры? В понедельник сдавать, а у меня одна эта задача осталась.
мисс_граффити
Найди просто решение (много раз делалось) и оформи в виде процедуры.
В чем проблема-то?
RrgTt_fx32!b
Цитата
Найди просто решение (много раз делалось) и оформи в виде процедуры.
В чем проблема-то?

если б не было проблемы стал бы я просить решение???
не умею я процедуры составлять. Функция просто была подобная, а процедуры нету.
Может сделаешь процедуру знаешь ведь как? Пожалуйста!
мисс_граффити
в общем случае функция переделывается в процедуру очень просто.
например:
function kub (x:integer) : integer;
begin
kub:=x*x*x;
end;


procedure kub(x:integer; var kubik:integer);
begin
kubik:=x*x*x;
end;

то есть в первом случае возврат результата идет через имя функции, а во втором - через специально для этого предназначенную переменную.
RrgTt_fx32!b
ну хоть кто-нибудь может решить задачу про седловые точки с помощью процедуры?
мисс_граффити
ты какой-то нелогичный: сначала полдня достаешь меня в ЛС, а потом даже не соизволиваешь (соизволяешь? как правильно?) посмотреть, что я ответила.
RrgTt_fx32!b
Я посмотрел. Спасибо! Только когда я это писал ты мне еще не ответила smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.