Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите решить задачу на Паскале
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
24dima
Мне дали на лабораторной работе задачи по Паскалю, но я его не так хорошо знаю Паскаль чтобы решить эту задачу. Помогите мне пожалуйста сделать эту задачу:
Сформировать однонаправленный список из звеном-заголовком.
Вывести его на печать.
Проверить, входит ли в этот список буква буква "К", если не входит, то дописать ее в конец списка.
мисс_граффити
поиск по форуму + FAQ

если мы сейчас напишем, то ты так никогда паскаль и не узнаешь.
24dima
Добрый вечер! Программу я написал, только что одна проблема букву "К" вставляет не в конце а в начале. Помогите решить проблему.

program laba4;
type
zv=^pointer;
pointer=record
elem:char;
next:zv
end;

var
find:boolean;
vlan, vslov:zv;
sym:char;

procedure vstav (lanka:zv; buk:char);
var
q:zv;
begin
if (lanka<>nil) then
new(q);
q^.elem:=buk;
q^.next:=lanka^.next;
lanka^.next:=q;
end;

begin
find:=false;
new (vslov);
vslov^.next:=nil;
vlan:=vslov;
writeln ('Введить символ до крапки');
repeat
read (sym);
vstav(vlan,sym);
vlan:=vlan^.next;
until sym='.';
writeln ('Сформований рядок');
vlan:=vslov;
vlan:=vlan^.next;
while vlan^.next<>nil do
begin
write (vlan^.elem);
vlan:=vlan^.next;
end;

vlan:=vslov;
while vlan^.next=nil do
begin
if vlan^.elem='K' then
begin
find:=true;
break;
end;
vlan:=vlan^.next;
end;

if find=true then writeln('Element e')
else
begin
vstav(vlan,'K');
writeln('Element vstavleno');
vlan:=vslov;
vlan:=vlan^.next;
repeat
write(vlan^.elem);
vlan:=vlan^.next
until vlan=nil;
writeln;
end;
end.

мисс_граффити
почему
while vlan^.next=nil  do

не равно должно быть...
тогда будет вставляться не в начало, а перед последним символом.
почему?
потому что процедура вставки у тебя реализована так, что элемент добавляется перед тем элементом, на который ты передаешь указатель.
так что придется для вставки К не ее использовать, а отдельно расписывать.

if find=true then

можно писать
if find then
24dima
Благодарю вас за помощь!
Lapp
Цитата(24dima @ 27.10.2010 10:35) *
Благодарю вас за помощь!

Добавляю +1 в репутацию мисс_граффити от 24dima
sheka
oфф.

24dima, ЗАЧЕМ ПИСАТЬ ТАКИМ ИТЕРЕСНЫМ ШРИФТОМ???
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.