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

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

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

> Рекурсивная обработка вектора
Rattter
сообщение 10.12.2006 14:08
Сообщение #1





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

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


Помогите задачку решить...

Условие: Реализуйте функцию Ф преобразования вектора А, состоящего из натуральных чисел (без изменения длины вектора), которая определяется следующим образом:

А, если |A|=1, т.е. длина вектора =1
Ф(А)= ab, если |A|=2, A=ab, a<=b
ba, если |A|=2, A=ab, b<a
Ф(B)Ф©, если |A|>2, A=BC, |B|=|C| или |B|=|C|+1

Упс! Условия неправильно записались. Извиняюсь, пишу еще раз...

Ф(А)= А, если |A|=1, т.е. длина вектора =1;
Ф(А)= ab, если |A|=2, A=ab, a<=b
Ф(A)= ba, если |A|=2, A=ab, b<a
Ф(A)= Ф(B)Ф©, если |A|>2, A=BC, |B|=|C| или |B|=|C|+1
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 11.12.2006 18:09
Сообщение #2


Гость






Это тебе Алена передала:
const
sz = 7;
type
vector = array[1 .. sz] of integer;
const
a: vector = (2, 1, 3, 4, 6, 5, 7);

procedure Recurs(var V: Vector; First, Last: Byte);
var
Element: Word;
size, Center: Byte;
begin
size := (last - first + 1);
if size = 1 then exit;

Center:= first + (size div 2);
if Size <= 2 then begin

if V[First]>V[Last] then begin
Element:=V[Last]; V[Last]:=V[First]; V[First]:=Element;
end

end
else begin
Recurs(V,First,center);
Recurs(V,Center,Last);
end;

end;

var i: integer;
begin
recurs(a, 1, sz);
for i := 1 to sz do write(a[i]:4);
writeln;
end.
 К началу страницы 
+ Ответить 

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


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

 



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