Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2015, 22:12   #1
Nyash
Пользователь
 
Регистрация: 28.01.2015
Сообщений: 11
По умолчанию Pascal!Процедуру, которая вставляет в непустой список L пару новых элементов E1 и E2 перед его последним элементом.

Здравствуйте, помогите пожалуйста с со второй частью задания!
Процедуру, которая вставляет в непустой список L пару новых элементов E1 и E2 перед его последним элементом.
Код:
program DemoQuery;
uses crt;
type
    data=record 
        FIO:string[15];
        god_rozh:integer;
        pol:string[10];
        ss:string[15];
        deti:integer;
        oklad:string[30];
      end;

    ukaz=^Query;
    Query=record
        inf:data;
        next:ukaz;
      end;
var E1,E2,NewE,left,right,temp:ukaz;
    l:data;
    key:char;
procedure org; 
begin
   writeln('Выполняется процедура организации');
   writeln('Для выхода из процедуры нажмите *');
   writeln('=========================================');
   writeln('Введите ФИО');
   readln(l.FIO);
   writeln('Введите год рождения');
   readln(l.god_rozh);
   writeln('Введите пол');
   readln(l.pol);
   writeln('Введите семейное состояние');
   readln(l.ss);
   writeln('Введите кол-во детей');
   readln(l.deti);
   writeln('Введите оклад ');
   readln(l.oklad);
   if l.FIO='*' then exit;    
   new(NewE);    
   NewE^.Inf.FIO:=l.FIO; 
   NewE^.Inf.god_rozh:=l.god_rozh;
   NewE^.Inf.pol:=l.pol;
   NewE^.Inf.ss:=l.ss;
   NewE^.Inf.deti:=l.deti;
   NewE^.Inf.oklad:=l.oklad;
   NewE^.Next:=nil;
   right:=NewE;   
   left:=NewE;   
       while true do begin
           writeln('Введите ФИО');
           readln(l.FIO);
           writeln('Введите год');
           readln(l.god_rozh);
           writeln('Введите пол');
           readln(l.pol);
           writeln('Введите Семейное состояние');
           readln(l.ss);
           writeln('Введите кол-во детей');
           readln(l.deti);
           writeln('Введите оклад');
           readln(l.oklad);
           if l.FIO='*' then exit;
           new(NewE);
           NewE^.Inf.FIO:=l.FIO;
           NewE^.Inf.god_rozh:=l.god_rozh;
           NewE^.Inf.pol:=l.pol;
           NewE^.Inf.ss:=l.ss;
           NewE^.Inf.deti:=l.deti;
           NewE^.Inf.oklad:=l.oklad;
           NewE^.Next:=nil;
           right^.next:=NewE;    
           right:=NewE          
       end
   end;

procedure dob;        
begin
    writeln('Введите ФИО');
    readln(l.FIO);
    writeln('Введите год рождения');
    readln(l.god_rozh);
    writeln('Введите пол');
    readln(l.pol);
    writeln('Введите');
    readln(l.ss);
    writeln('Введите кол-во детей');
    readln(l.deti);
    writeln('Введите оклад');
    readln(l.oklad);
    if l.FIO='*' then exit;
    new(NewE);
    NewE^.Inf.FIO:=l.FIO;
    NewE^.Inf.god_rozh:=l.god_rozh;
    NewE^.Inf.pol:=l.pol;
    NewE^.Inf.ss:=l.ss;
    NewE^.Inf.deti:=l.deti;
    NewE^.Inf.oklad:=l.oklad;
    NewE^.Next:=nil;
    if right=nil then    
        left:=NewE         
    else
        right^.next:=NewE;   
    right:=NewE;
end;

procedure udal;       
begin
    writeln('Исключается головной элемент очереди');
    writeln('Нажмите клавишу "Enter" ');
    readln;
    if left <> nil then    
    begin
        temp:=left;   
        left:=left^.next;    
        dispose(temp);  
        if left=nil then    
            right:=nil;    
    end
end;
procedure prosmotr;   
var i:integer;    
begin
    writeln('Очередь содержит следующие элементы');
    temp:=left;
    i:=1;
    while temp <> nil do begin
        writeln(i,' ',temp^.Inf.FIO,' ',temp^.Inf.god_rozh,' ',temp^.Inf.pol,' ',temp^.Inf.ss,' ',temp^.Inf.deti,' ',temp^.Inf.oklad);
        temp:=temp^.next;
        i:=i+1;
    end;
    writeln('Нажмите клавишу "Enter" ');
    readln;
end;

procedure vstavka;   
begin
   writeln('Введите ФИО');
   readln(l.FIO);
   writeln('Введите год рождения');
   readln(l.god_rozh);
   writeln('Введите пол');
   readln(l.pol);
   writeln('Введите семейное состояние');
   readln(l.ss);
   writeln('Введите кол-во детей');
   readln(l.deti);
   writeln('Введите оклад');
   readln(l.oklad);
   if l.FIO='*' then exit;
   new(E1);
   E1^.Inf.FIO:=l.FIO;
   E1^.Inf.god_rozh:=l.god_rozh;
   E1^.Inf.pol:=l.pol;
   E1^.Inf.ss:=l.ss;
   E1^.Inf.deti:=l.deti;
   E1^.Inf.oklad:=l.oklad;
   new(E2);
   E1^.Next:=E2;
   E2^.Inf.FIO:=l.FIO;
   E2^.Inf.god_rozh:=l.god_rozh;
   E2^.Inf.pol:=l.pol;
   E2^.Inf.ss:=l.ss;
   E2^.Inf.deti:=l.deti;
   E2^.Inf.oklad:=l.oklad;
   E2^.Next:=nil;
   right^.next:=E1;
   right:=E2;
end;

begin
 
  {}
    until key='6'
end.

Последний раз редактировалось Nyash; 04.03.2015 в 22:46.
Nyash вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В каждом столбце первый элемент поменять с последним элементом. _viktorija_ Паскаль, Turbo Pascal, PascalABC.NET 0 21.02.2014 22:13
Написать процедуру подобно insert, которая после каждого вхождения символа C в строку S1 вставляет строку S2 azalia Паскаль, Turbo Pascal, PascalABC.NET 17 09.01.2014 12:39
В массиве из 15 вещественных чисел найти наибольший элемент и поменять его местами с последним элементом массива. 1309 Помощь студентам 4 17.05.2012 14:25
в массиве все максимальные элементы заменить первым элементом, а все минимальные элементы заменить последним элементом Валерия2701 Паскаль, Turbo Pascal, PascalABC.NET 1 12.10.2011 15:49
Выпадающий список с добавлением новых элементов agregator Microsoft Office Excel 3 11.08.2011 11:09