IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Использование функции в качестве параметра другой функции
taran
сообщение 9.04.2008 21:21
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  0  +


Для двух заданных целочисленных массивов К и М разной длины составить процедуру, формирующую третий массив L из элементов массива М, не совпадающих ни с одним из элементов массива f(K1), f(K2)...f(Kn), где n - длина массива К.
На основе этой процедуры сформировать массив из тех элементов строк целочисленной матрицы А, начиная со второй строки, значения которых не совпадают со значениями квадратов элементов первой строки матрицы А.

Помогите, пожалуйста, как в составлении процедуры, так и в применении её к матрице. Заранее огромное спасибо.

Добавлено через 16 мин.
Есть версия программы, но она работает крайне некорректно: условие, по-моему, соблюдается, лишь для третьего столбца матрицы.

Очень надеюсь на вашу помощь.


program pr14;

const
N = 3;

type
Str = array [1..N] of integer;
Func = function (X: integer): integer;

var
A: array [1..N] of Str;
B: array [1..(N*N-N)] of integer;
L: integer;
i, j: integer;

procedure Proc(f: Func; K, M: array of integer; var L: array of integer; var len: integer);
var
i, j: integer;
b: boolean;
begin
for i := 0 to High(M) do begin
b := false;
for j := 0 to High(K) do b := ( M[i] = f(K[j]) );
if not b then begin
L[len] := M[i];
len := len + 1;
end;
end;
end;

function fc(X: integer): integer;far;
begin
fc := Sqr(X);
end;

begin
writeln('vvedite postro4no matricu 3x3');
for i := 1 to N do
begin
for j := 1 to N do read(A[i,j]);
readln;
end;
L := 0;
for i := 2 to N do Proc(fc, A[1], A[i], B, L);
if L > 0 then
for i := 1 to L do WriteLn('B[', i, '] = ', B[i]);
ReadLn;
end.



Сообщение отредактировано: taran - 9.04.2008 21:38
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 19:25
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"