Помогите пожалуйста решить задачи! Пожалуйста,помогите составить!Срочно нужно к пятнице сделать!

1) Процедуры.

Описать процедуру MoveRight(A,N,k), осуществляющую циклический сдвиг
элементов вещественного массива A размера N на k позиций вправо (0 < k < 5, k
< N). Массив A - входной и выходной параметр, N и k - входные параметры. С
помощью этой процедуры осуществить сдвиг элементов данного
массива
размера N на k1 позиций, а затем - сдвиг элементов полученного
массива на k2
позиций (k1 и k2 даны). После каждого вызова процедуры выводить на экран
результирующий массив.


2) Рекурсия

Описать рекурсивную функцию MinRec(A,N) вещественного типа, которая
находит минимальный элемент вещественного массива A размера N, не
используя оператор цикла. С помощью функции MinRec найти минимальные
элементы массивов A, B, C размера NA, NB, NC соответственно.


3) Типизированные файлы.

Дан файл целых чисел. Вывести количество содержащихся в нем серий (то
есть наборов последовательно расположенных одинаковых элементов).


Так выглядит вторая задача

Program Recursiya;
function F(A: array of Real; N: Integer): Real;
var
t: Real;
begin
Dec(N);
Result := A[N];
if N > 0 then
begin
t := F(A, N);
if t < Result then
Result := t;
end;
end;

Помогите доделать плиииз!


Так выглядит 3 задача:


F: 1, 1, 2, 2, 3, 4, 5, 6, eof - файл целых чисел
X-текущее значение
Xs-предыдущее значение
Seria-Внутри серии (да/нет)
Kol_S- кол-во серий

1.Начальные присвоения

Считываем Xs из F
Seria:=False;
Kol_S:=0;

2.Считаем серии
Пока не конец файла ...
Считываем из файла х
если (X=Xs) And not Seria:=True
kol_s:=Kol_s+1;
если X<>Xs тогда начальн. присв. для Xs и Seria...


Пожалуйста,помогите составить!Срочно нужно к пятнице сделать!