zadah48.PAS

{* Задача 48 *}

Unit ZADAH48;
Interface
Implementation
Begin
 writeln('

Дан массив A размера N. Для целых чисел K и L 1≤K<L≤N переставить в обратном порядке элементы массива расположенные между AK и AL

'
);
End.

Program zadah48;

Uses zadah48.pas; {* Эту строку можно удалить *}
Uses crt; {* Подключаем внешние файлы *}
Type {* Создание новых типов данных *}
  mas = Array[1..100] Of integer;
Var {* Необходимые переменные *}
  i  : integer;
  j  : integer;
  k  : integer;
  n  : integer;
  f1 : integer;
  f2 : integer;
  l  : integer;
  a  : integer;
  b  : integer;
  c  : integer;
  d  : real;
  g  : real;
  ar : mas;
  br : mas;
  cr : mas;
  dr : mas;
Begin
  clrscr; {* Стираем всё с экрана *}
  write('Введите длину массива A: ');
  readln(a);
  write('Введите номер элемента массива K: ');
  readln(k);
  write('Введите номер элемента массива L: ');
  readln(l);
  Begin
    randomize;
    For i := 1 To a Do {* Увеличиваем i от 1 до a с шагом 1 *}
      ar[i] := random(100);
  End;
  For i := 1 To a Do {* Переменная i увеличивается с 1 до a *}
    write(ar[i] : 3, '|');
  writeln; {* Вывод пустой строки *}
  If (l - k) Mod 20 Then
    c := ((l - k) - 1) Div 2
  Else c := (l - k) Div 2;
    For i := k To k + c Do {* Увеличиваем i от k до k с шагом 1 *}
    Begin
      n := ar[i];
      ar[i] := ar[l - j];
      ar[l - j] := n;
      inc(j); {* j++ *}
    End;
  For i := 1 To a Do {* Увеличиваем i от 1 до a с шагом 1 *}
    write(ar[i] : 3, '|');
End.