обе программы проверенны и работают ошибки могут быть только если их неправильно перенабрали
попробуй скопировать текст в блокнот и сохранить с расширением pas, а потом откроеш из паскаля
первая программа
Код: Выделить всё
program ex1; //название программы
var // далее будет обьявление переменных
s: string; // s типа string тоесть строка
begin // начало программы
s:= ' dfdf dfdf dfdf dvfdv dfdf ddf '; // заносим строку в s
writeln(s); // выводим s на экран
//в итоге следующих двух строк в строке s остануться только одинарные пробелы
while pos(' ',s)<>0 do // пока в строке встречается сдвоенный пробел
delete(s,pos(' ',s),1); // удалять первый из двух пробелов
//в итоге следующих пяти строк в строке s все пробелы будут заменены точками
while pos(' ',s)<>0 do //пока в строке s пробелы
begin //начало повторяющегося пока не закончаться пробелы блока
insert('.',s,pos(' ',s)); //вставить точку перед пробелом
delete(s,pos(' ',s),1); //удалить пробел
end;//конец повторяющегося пока не закончаться пробелы блока
if s[length(s)] = '.' then //если последний символ в строке s точка
delete(s,length(s),1); // удалить последний символ в строке s
writeln(s); // вывести s на экран
readln; // прочитать с клавиатуры (задержка перед выключением)
end.//конец программы
вторая программа
Код: Выделить всё
program ex2; //название программы
var // далее будет обьявление переменных
s,s1,temp: string;// s,s1,temp типа string тоесть строки
i,j: integer; //i,j типа integer тоесть целые числа
begin// начало программы
s:= 'sdgfsdrgcv sdfsdf sertgefwbv drgcv drgcv ';// заносим строку в s
s1:='drgcv';// заносим подстроку в s1
j:=0;// заносим ноль в j
temp:=s;// копируем строку из s в temp
if pos(s1,s)=0 then //если подстрока s1 отсутствует в строке s
writeln(s) //выводим s на экран
else //если же подстрока s1 присутствует в строке s
begin //начало блока выполняемого если подстрока s1 присутствует в строке s
while pos(s1,temp)<>0 do //пока в в строке temp встречается подстрока s1
begin//начало блока выполняемого если в строке temp встречается подстрока s1
i:=pos(s1,temp); // сохраняем в i позицию начала подстроки s1 в строке temp
j:=j+1;//Увеличиваем j счетчик удаленных из строки temp символов
delete(temp,i,1);удаляем первую букву вхождения подстроки s1 строку temp
end;//конец блока выполняемого если в строке temp встречается подстрока s1
delete(s,i+j-1,length(s1));//удаляем из строки s последнее вхождение подстроки s1
// начало последнего вхождения вычисляется как сумма позиции последнего вхождения подстроки s1 в строку temp + количество удаленных из строки temp
// букв минус один(потому что после нахождения последнего вхождения подстроки s1 в строку temp удаляеется первая буква последнего вхождения)
end;//конец блока выполняемого если подстрока s1 присутствует в строке s
writeln(s);//вывод строки s на екран
readln; // прочитать с клавиатуры (задержка перед выключением)
end.//конец программы