![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
FENIX |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
Объект - однонаправленный список без головного элемента.
Частное от деления первых 2-х элементов поместить на 3-е место, если первый элемент больше, иначе заменить первые элементы их суммой. Что-то не допираю, как сделать ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Для начала прочитать здесь: FAQ: Списки, и создать сам список... Я думаю, после прочтения проблема исчезнет
![]() |
FENIX |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(volvo @ 29.03.05 21:36) Для начала прочитать здесь: FAQ: Списки, и создать сам список... Я думаю, после прочтения проблема исчезнет ![]() Список я создал и все вроде работает (я только не пойму, что с памятью - ПОСЛЕ работы проги ее становится больше ![]() :low: Код Uses Crt; type Inf = Real; Ptr = ^EL; EL = record Dn : Inf; Nx : Ptr; end; List = object Last, First : ptr; Count : integer; Constructor Init; Destructor Done; Procedure Delenie; Procedure Add_End (D : Inf); Procedure Add_Head (D : Inf); Procedure Clear; Procedure EraseElement (p : ptr); Procedure Print; end; Constructor List.Init; begin Count := 0; First := nil; Last := nil; end; Destructor List.Done; begin Clear; end; Procedure List.Clear; begin EraseElement(First); Count := 0; Last := nil; end; Procedure List.EraseElement(p : ptr); begin if p <> nil then begin EraseElement(p^.Nx); Dispose(p); p := nil; end; end; Procedure List.Add_Head(D : Inf); var p, q : Ptr; begin New(p); p^.Dn := D; p^.Nx := q; q := p; end; procedure List.Add_End(D : Inf); var p : Ptr; begin New(p); p^.Dn := D; p^.Nx := nil; if Last = nil then begin First := p; Last := p; end else begin Last^.Nx := p; Last := p; end; Inc(Count); end; Procedure List.Print; var p : Ptr; begin p := First; While p <> nil do begin write(p^.Dn : 4,' '); p := p^.Nx; end; writeln; end; ===================================================== Procedure List.Delenie; var q, s, c : ptr; Chastnoe, a, b : inf; begin a := First^.Dn; q := First^.Nx; b := s^.Dn; If a > b then begin Chastnoe := a / b; s := q^.Nx; s := nil; end else writeln('Help plz;) '); end; ===================================================== var L1 : List; A : integer; BEGIN ClrScr; {$I+} Assign(input, 'input.txt'); Reset(input); {$I-} while not EoF do begin Read(A); {L1.Add_Head(A);} L1.Add_End(A); end; writeln('Pamyati DO= ',MemAvail); writeln; L1.Print; L1.Delenie; Close(Input); L1.Done; writeln; writeln('Pamyati POSLE= ',MemAvail); readln; END. В процедуре Delenie я и намерен все сделать. Частное находит верно, но не могу понять, как 3-ий элемент заменить частным... Сообщение отредактировано: FENIX - 29.03.2005 22:21 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 11:02 |