29.12.2013, 18:40 | #1 (permalink) |
Новичок
Регистрация: 30.11.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Динамический список, Паскаль
Описать процедуры а)которая вставляет в непустой список L пару новых элементов Е1 и Е2 перед его последним элементом б)определяет, сколько раз входит элемент Е в список L и каждое значение Е заменяет на среднее арифметическое чисел, находящихся до числа Е Знаю, как добавить элемент на последнее место, но как на предпоследнее? А по поводу второй процедуры пока вообще не знаю, как... Program Spisok; uses crt; type Tinf=integer; List=^TList; TList=record data:TInf; {данные, хранимые в элементе} next:List; {указатель на следующий элемент списка} end; var Spis,tmpl:List; znach:integer; ch:char; f: text; procedure sozdanie_spiska(spis1:List); var first,p1,p2:List; begin assign (f,'spisok.txt'); first:=nil; while not seekeof (f) do begin new (P1); read (f, p1.data); if first=nil then first:= p1 else p2^.next:= p1; p2:=p1; end; p2^.next:= nil; end; procedure Print(spis1:List); begin if spis1=nil then begin writeln('Список пуст.'); exit; end; while spis1<>nil do begin Write(spis1^.data, ' '); spis1:=spis1^.next end; end; {Процедура добавления нового элемента в односвязный список} procedure AddElem(var spis1:List;znach1:TInf); var tmp:List; begin begin tmp:=spis1; while tmp^.next<>nil do tmp:=tmp^.next; {ставим tmp на последний элемент списка} GetMem(tmp^.next,sizeof(TList)); {создаём следующий элемент} tmp:=tmp^.next; {переносим tmp на новый элемент} end; tmp^.next:=nil; {зануляем указатель} tmp^.data:=znach1; {заносим значение} end; BEGIN sozdanie_spiska(spis); repeat clrscr; Write('Программа для работы со '); TextColor(4); Writeln('списком.'); TextColor(7); Writeln('Выберите желаемое действие:'); Writeln('1) процедура 1.'); Writeln('2) Вывод списка.'); Writeln('3) процедура 2.'); writeln; ch:=readkey; case ch of '1':begin write('Введите значение добавляемого элемента: '); readln(znach); AddElem(Spis,znach); end; '2':begin clrscr; Print(Spis); readkey; end; '3':begin end; end; until ch='8'; FreeStek(Spis); end. |
29.12.2013, 18:40 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Можно узнать множество полезной информации перейдя по этим ссылкам Список файлообменников Черный список Вывести список положительных чисел, список отрицательных чисел на C# Черный список и SMS |
02.01.2014, 21:34 | #2 (permalink) |
Новичок
Регистрация: 30.11.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задача решена.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|