Написать функцию которая в непустом перечне L меняет местами 1-ый и

Написать процедуру которая в непустом списке L меняет местами 1-ый и последний элементы и вставить её в данную программу.

Задать свой вопрос
1 ответ
type
nbsp;nbsp;zap = record
nbsp;nbsp;nbsp;nbsp;fam: string[10];
nbsp;nbsp;nbsp;nbsp;im: string[7];
nbsp;nbsp;nbsp;nbsp;otc: string[13];
nbsp;nbsp;end;
nbsp;nbsp;ukaz = ^element;
nbsp;nbsp;element = record
nbsp;nbsp;nbsp;nbsp;inf: zap;
nbsp;nbsp;nbsp;nbsp;next: ukaz;
nbsp;nbsp;end;
nbsp;
var
nbsp;nbsp;newE, left, right, temp: ukaz;
nbsp;nbsp;z: zap;
nbsp;nbsp;number: integer;
nbsp;
function InputZ : zap;
var
nbsp;nbsp;z : zap;
begin
nbsp;nbsp;writeln(Введите фамилию студента);
nbsp;nbsp;readln(z.fam);
nbsp;nbsp;writeln(Введите имя студента);
nbsp;nbsp;readln(z.im);
nbsp;nbsp;writeln(Введите отчество студента);
nbsp;nbsp;readln(z.otc);
nbsp;nbsp;InputZ := z;
end;
nbsp;
procedure dob(var first, last : ukaz);
var
nbsp;nbsp;z : zap;
begin
nbsp;nbsp;z := InputZ;
nbsp;nbsp;if first = nil then
nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;New(first);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;last := first;
nbsp;nbsp;nbsp;nbsp;end
nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;New(last^.next);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;last := last^.next;
nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;last^.inf := z;
nbsp;nbsp;last^.next := nil;
end;
nbsp;
procedure org(var first, last : ukaz);
var
nbsp;nbsp;answer : String;
begin
nbsp;nbsp;writeln(Производится процедура организации очереди);
nbsp;nbsp;repeat
nbsp;nbsp;nbsp;nbsp;WriteLn;
nbsp;nbsp;nbsp;nbsp;WriteLn(Желаете добавить студента? 1 - да / 0 - нет);
nbsp;nbsp;nbsp;nbsp;ReadLn(answer);
nbsp;nbsp;nbsp;nbsp;if Length(answer) = 1 then
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;case answer[1] of
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;1 : dob(first, last);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;0 : Exit;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;until False;
end;
nbsp;
procedure udal(var first, last : ukaz);
var
nbsp;nbsp;tmp : ukaz;
begin
nbsp;nbsp;writeln(Исключение основного элемента очереди);
nbsp;nbsp;if first = nil then
nbsp;nbsp;nbsp;nbsp;WriteLn(Операция невозможна: очередь пуста!)
nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;tmp := first;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;first := first^.next;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;dispose(tmp);
nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;writeln(Нажмите кнопку Enter);
nbsp;nbsp;readln;
end;
nbsp;
procedure prosmotr(cur : ukaz);
var
nbsp;nbsp;i : integer;
nbsp;nbsp;z : zap;
begin
nbsp;nbsp;if cur = nil then
nbsp;nbsp;nbsp;nbsp;WriteLn(Очередь пуста!)
nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;writeln(Очередь содержит последующие элементы);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;i := 0;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while cur lt;gt; nil do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;inc(i);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;z := cur^.inf;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;writeln(i, ), z.fam, , z.im, , z.otc);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;cur := cur^.next;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;writeln(Нажмите кнопку Enter);
nbsp;nbsp;readln;
end;
nbsp;
procedure SwapFirstAndLast(var first, last : ukaz);
var
nbsp;nbsp;tmp : ukaz;
begin
nbsp;nbsp;if first = nil then WriteLn(Очередь пуста!)
nbsp;nbsp;else if first = last then WriteLn(1-ый = заключительному!)
nbsp;nbsp;else
nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;tmp := first;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while tmp^.next lt;gt; last do tmp := tmp^.next;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;last^.next := first^.next;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;tmp^.next := first;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;first^.next := nil;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;tmp := last; last := first; first := tmp;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;prosmotr(first);
nbsp;nbsp;nbsp;nbsp;end;
end;
nbsp;
--------------------------------------------------------------------
var
nbsp;nbsp;first, last : ukaz;
begin
nbsp;nbsp;first := nil;
nbsp;nbsp;last nbsp;:= nil;
nbsp;nbsp;repeat
nbsp;nbsp;nbsp;nbsp;writeln(1-организация очереди);
nbsp;nbsp;nbsp;nbsp;writeln(2-прибавление элемента в очередь);
nbsp;nbsp;nbsp;nbsp;writeln(3-удаление элемента из очереди);
nbsp;nbsp;nbsp;nbsp;writeln(4-просмотр очереди);
nbsp;nbsp;nbsp;nbsp;writeln(5 - поменять 1-ый и заключительный элементы);
nbsp;nbsp;nbsp;nbsp;writeln(0-выход);
nbsp;nbsp;nbsp;nbsp;writeln(------------------);
nbsp;nbsp;nbsp;nbsp;writeln(введите номер пт меню);
nbsp;nbsp;nbsp;nbsp;readln(number);
nbsp;nbsp;nbsp;nbsp;case number of
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;1: org(first, last);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;2: dob(first, last);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;3: udal(first, last);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;4: prosmotr(first);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;5: SwapFirstAndLast(first, last);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;0: halt;
nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;until False;
end.
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт