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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2007, 16:02   #1
Дарюха
 
Регистрация: 04.07.2007
Сообщений: 3
По умолчанию Написать комментарии к коду. Delphi.

(Срочно) Ребят,есть задача и написанная к ней прога,мне нужно сдавать,а я не знаю,что там где происходит...Если можно,напишите комменты к коду,пожалуйста..

От Стилета: Темы нужно называть так чтоб было понятно что нужно. (На будущее)

Последний раз редактировалось Stilet; 21.11.2007 в 16:44.
Дарюха вне форума Ответить с цитированием
Старый 21.11.2007, 16:05   #2
Дарюха
 
Регистрация: 04.07.2007
Сообщений: 3
По умолчанию

Условие:

Имеется двунаправленный список, содержащий информацию по документу «наряд на выполненную работу». Элементы списка определены следующим образом:
Во-первых, шифр наряда – INTEGER;
Во-вторых, номер цеха – STRING [2];
В-третьих, номер участка – STRING [2];
В-четвертых, кол-во изготовлено – INTEGER;
В-пятых, кол-во принято – INTEGER;
В-шестых, ссылка на предыдущий элемент списка;
В-седьмых, ссылка на следующий элемент списка.

Список упорядочен по возрастанию реквизита «шифр наряда».

Разработать для среды DELPHI модуль, обеспечивающий вставку нового элемента в упорядоченный список. Если в списке уже имеется реквизит «шифр наряда» с таким же значением, выдать сообщение об ошибке.

Код:
{$APPTYPE CONSOLE}
{$O-}

uses
  SysUtils;

type rec=^zap;
zap=record
iShifr, iIzg, iDone : integer;
sNomerCeh, sNomerUch : string[2];
next, pred : rec;
end;

var i,n,f : integer;
r : rec;
first : rec;

function paste(t : rec) : integer;
var q,r : rec;
begin
if first = NIL then
  begin
  first := t;
  first^.next := NIL;
  first^.pred := NIL;
  end else
    begin
    q := first;
    if (q.iShifr > t.iShifr) then
      begin
      first^.pred:= t;
      t^.next:= first;
      first := t;
      end else
        begin
        while((q <> NIL) and (q^.iShifr < t.iShifr)) do
          begin
          r := q;
          q := q^.next;
          end;
        if ((q<>NIL) and (q.iShifr = t.iShifr)) then
          begin
          paste := 0; //the same
          exit;
          end;
        if (q = NIL) then
          begin
          r^.next := t;
          t^.pred := r;
          t^.next := NIL;
          end else
            begin
            (q^.next)^.pred := t;
            t^.next := q^.next;
            q^.next := t;
            t^.pred := q;
            end;
        end;
    end;
paste := 1;
end;

procedure writeId();
var r : rec;
begin
r := first;
while r<>NIL do
  begin
  write(r^.iShifr); write(' -> ');
  r := r^.next;
  end;
write('NIL');
end;

begin

write('Vvedite kol-vo dobavlyaemih zapisei: ');
readln(n); 
first := NIL;
for i := 1 to n do
  begin
  new(r);
  writeln('Input:');
  write('1) Shifr naryada: ');
  readln(r^.iShifr);
  write('2) Nomer ceha[2]: ');
  readln(r^.sNomerCeh);
  write('3) Nomer uchastka[2]: ');
  readln(r^.sNomerUch);
  write('4) Izgotovlennoe kol-vo: ');
  readln(r^.iIzg);
  write('5) Prinyato: ');
  readln(r^.iDone);
  f := paste(r);       //if paste = 0 => the same
  if (f = 0) then writeln('THE SAME IN LIST!');
  readln;
  end;
writeId();
end.
Цитата:
Вставляя часть кода помещаем его в тег [СОDE][/CODЕ], # - в расширенном режиме. Модератор.

Последний раз редактировалось AlDelta; 21.11.2007 в 16:58.
Дарюха вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание блок-схем по коду С++ Panterka Общие вопросы C/C++ 7 04.02.2018 19:21
Комментарии к коду Juhn Паскаль, Turbo Pascal, PascalABC.NET 6 24.12.2007 20:29
Комментарии к коду Ярослав Помощь студентам 4 23.11.2007 16:57