|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.05.2012, 17:51 | #1 |
Новичок
Джуниор
Регистрация: 11.05.2012
Сообщений: 1
|
указательный тип
Здравствуйте.помогите пожалуйста с программой.плохо разбираюсь в указательном типе..Уже есть начало программы:
uses SysUtils; const n=10; type List = ^Node; Node = record data:integer; next:List; end; var L: List; s:string; procedure init(var L:List); var q,p:list; i:byte; begin randomize; if L<>nil then begin while L<>nil do begin q:=L; L:=L^.next; dispose(q); end; end; new (L); L^.data:= random(100)-50; L^.next := nil; q:=L; //голова for i:=1 to n do begin new(p); p^.data := random(100)-50; p^.next := nil; q^.next := p; q:=q^.next; end; end; procedure print(var L:List); var q:list; begin q := L; while q^.next<>nil do begin write(q^.data, ', '); q:=q^.next; end; write(q^.data); end; procedure insert(var L:List); var q,gu,tr,kk:list; k:byte; i:byte; begin k:=3; q := L; i:=0; while q<>nil do begin i:=i+1; if i=k-1 then begin gu:=q; tr:=gu^.next; new(kk); kk^.data := random(100)-50; kk^.next := tr; gu^.next := kk; break; end else q:=q^.next; end; end; procedure deletek(var L:List); var q,gu,tr:list; k,i:byte; begin k:=3; q := L; i:=0; while q<>nil do begin i:=i+1; if i=k-1 then begin gu:=q; tr:=gu^.next^.next; dispose(gu^.next); gu^.next :=tr; break; end else q:=q^.next; end; end; function listcount(var L:List):integer; var q:list; i:integer; begin i:=0; if L<>nil then begin q := L; while q<>nil do begin i:=i+1; q:=q^.next; end; end; listcount:=i; end; procedure printlistcount(var L:List); begin if listcount(L)=0 then writeln( 'the list is empty') else writeln(listcount(L)); end; function element(vh:string):boolean; var i:byte; com: string; vhh:boolean; begin com:=''; i:=1; while vh[i]<>' ' do if vh[i]='' then break; com:=com+vh[i]; i:=i+1; end; delete(vh,1,i); if v='' then begin vhh:=false end else begin vhh:=true; end; vh:=vhh; end; end; BEGIN read(s); while s<>'quit' do begin if s='init' then init(L); if s='print' then print(L); if s='insert' then insert(L); if s='deletek' then deletek(L); if s='printlistcount' then printlistcount(L); read(s); readln; end; END. нужно ещё выполнить следующие задания: 1. Предусмотреть ввод команды и параметра в виде "command var". 2. Дополнить функцию insert следующим образом insert (без параметров) - реализация функции insert 1 - добавление нового элемента в список в начало (новый элемент становится первым, остальные сдвигаются) insert N - новый элемент вставляется на место N в списке. Если N превышает длину списка - элемент добавляется в конец, выводится предупреждение о превышении длины списка insert 0 - новый элемент добавляется в конец списка При N<0 выводится сообщение об ошибке. 3. Реализовать функции listcount(), возвращающую количество элементов в списке и printlistcount, выводящую в консоль значение listcount() с пояснением. Предусмотреть команду list без параметра. 4. Модифицировать функцию print, добавить параметр N. Если параметр не вводится, выводится список целиком. При N>0 выводятся первые N элементов списка, при N<0 - последние N элементов. Например, в списке 10 элементов, при print -5 выводятся 6,7,8,9,10. При N=0 список выводится в обратном порядке. буду очень рада помощи,спасибо |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
две задачи на тип INTEGER и тип CHAR | inspiron13 | Помощь студентам | 5 | 04.01.2011 00:17 |
две задачи на тип INTEGER и тип CHAR | inspiron13 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 04.01.2011 00:08 |
Указательный тип.(Pascal/Deplhi) | Wild_klas | Помощь студентам | 1 | 06.12.2010 21:31 |
Различия между const <Тип> и <Тип> | RIO | Общие вопросы C/C++ | 3 | 03.12.2010 15:28 |
Перевести тип String в тип PChar (Delphi 7) | ScorpioN_T | Помощь студентам | 2 | 28.10.2008 22:13 |