Программа
{ 16.13.в
!!! Ввод текста с клавиатуры
Конец строки - [Enter]
Конец текста - F6 или [Ctrl]+[Z] для IBM-совместимых систем
Маркер конца текста вводить в отдельной строке }
PROGRAM Changer(input,putput);
CONST QuantityChar=79; { Максимальное число символов в строке }
QuantityString=10; { Масимальное число строк в тексте }
TYPE Str=packed array [1..QuantityChar] of char; { Строка }
RefStr=^Str; { Ссылка на строку }
TextType=array [1..QuantityString] of RefStr; { Тип - текст }
VAR Text:TextType; { Текст }
String1,String2:1..QuantityString; { Номера переставляемых строк }
PROCEDURE InputText(var Text:TextType); { Процедура ввода текста }
Var i:1..QuantityString; { Счетчик строк }
j:1..QuantityChar; { Счетчик символов в строке }
Begin
WriteLn('ВЕДИТЕ ТЕКСТ'); { Вывод приглашения }
for i:=1 to QuantityString do { Цикл ввода строк }
if not EOF { Проверка достижения конца файла }
then begin { Ввод строки }
New(Text[i]); { Создание переменной }
for j:=1 to QuantityChar do { Цикл ввода строки }
if not EOLn { Проверка достижения конца строки }
then Read(Text[i]^[j]) { Ввод символа }
else Text[i]^[j]:=' '; { Добавление пробелов в конец строки }
ReadLn { Пропуск конца строки }
end
else Text[i]:=nil { Сброс значения ячейки }
End;
PROCEDURE OutputText(Text:TextType); { Процедура вывода текста }
Var i:1..QuantityString; { Счетчик строк }
j:1..QuantityChar; { Счетчик символов в строке }
Begin
for i:=1 to QuantityString do { Цикл вывода строк }
if Text[i]<>nil then { Проверка наличия строки }
begin { Вывод строки }
for j:=1 to QuantityChar do { Цикл вывода строки }
Write(Text[i]^[j]); { Вывод символа }
WriteLn { Вывод конца строки }
end
End;
PROCEDURE ChangeString(var Text:TextType;S1,S2:integer);
{ Процедура перестановки строк }
Var Buf:RefStr; { Буферная ссылка }
Begin
if (Text[S1]<>nil)and(Text[S2]<>nil) then { Проверка наличия строк }
begin { Перестановка ссылок: }
Buf:=Text[S1];
Text[S1]:=Text[S2];
Text[S2]:=Buf
end
End;
BEGIN
WriteLn; { Пропуск строки }
InputText(Text); { Ввод текста }
WriteLn; { Пропуск строки }
Write('Введите номера переставляемых строк '); { Вывод приглашения }
ReadLn(String1,String2); { Ввод номеров переставляемых строк строк }
WriteLn('ИСХОДНЫЙ ТЕКСТ:'); { Вывод заголовка }
WriteLn('---------------');
OutputText(Text); { Вывод текста }
ChangeString(Text,String1,String2); { Перестановка строк }
WriteLn; { Пропуск строки }
WriteLn('МОДИФИЦИРОВАННЫЙ ТЕКСТ:'); { Вывод заголовка }
WriteLn('-----------------------');
OutputText(Text); { Вывод текста }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию