Показать сообщение отдельно

  #10  
Старый 15.04.2009, 13:33
snAKe33
Участник форума
Регистрация: 10.02.2009
Сообщений: 203
Провел на форуме:
3226894

Репутация: 379
По умолчанию

Нужна помощь по паскалю.!
то сам не догоняю как сделать!
Вообщем есть текст программы но он не работает.!
Программа должна удалять из каждой тройки букв среднюю букву.!тип циклический.
проблема в том что я написал, что бы было чтение данных из файла..!а нужно что бы они вводились с клавиатуры, и конец строчки заканчивалась .(точкой)
т.е вводишь данные.
1 строчка йцукен
конец строчки .
начальное слово йцукен......преобразованное йукн
.
также я хз зачем создал еще Pysk, Pysk1, Ptr1

Uses Crt;
type
pSpisok = Slova;
Slova = Record
slv : string[10];
next : pSpisok
end;
var
Head1, Tail1, Head2, Tail2, Ptr1, Ptr2, Pysk1, Pysk2 : pSpisok;
St, Str : string[10];
F : text;
I, K, N : integer;
Name : string;
begin
ClrScr;
Writeln ('Fail dolgen sodergat slova, raspologennie postrochno');
Writeln ('Vvedite imya faila: ');
Readln (Name);
Assign (F, Name);
Reset (F);
Head1 := Nil;
Tail1 := Nil;
Head2 := Nil;
Tail2 := Nil;
ClrScr;
While not Eof(F) do
begin
Readln (F, St);
New (Ptr1);
Ptr1^.Slv :=St;
Ptr1^.Next := Nil;
If Tail1 <> Nil then
Tail1^.Next := Ptr1;
Tail1 := Ptr1;
If Head1 = Nil then
Head1 := Ptr1;
end;
Tail1^.Next := Head1;
Ptr1 := Head1;
Pysk1 := Head1;
repeat
Str := Ptr1^.Slv;
N := length(str) - 1 div 3;
If Str <> '' then K := 1;
for I := 1 to N do
begin
Delete (Str, K+1, 1);
K := K + 2;
end;
New (Ptr2);
Ptr2^.Slv := Str;
Ptr2^.Next := Nil;
If Tail2 <> Nil then
Tail2^.Next := Ptr2;
Tail2 := Ptr2;
If Head2 = Nil then
Head2 := Ptr2;
Pysk1 := Ptr1^.Next;
Ptr1 := Pysk1;
Until Pysk1 = Head1;
Tail2^.Next := Head2;
Pysk1 := Head1;
Pysk2 := Head2;
Ptr1 := Head1;
ptr2 := Head2;
repeat
Write (Ptr1^.Slv,' ');
Writeln (Ptr2^.Slv);
Pysk1 := Ptr1^.Next;
Pysk2 := Ptr2^.Next;
Ptr1 := Pysk1;
Ptr2 := Pysk2;
until Pysk2 = Head2;
repeat until KeyPressed;
End.

Последний раз редактировалось snAKe33; 15.04.2009 в 13:36..
 
Ответить с цитированием