Предмет: Информатика,
автор: Kassandriala
Переделать вывод программы на строки.
Паскаль. Как перенастроить на то, чтобы выводилось в столбик?
Программа выводит строку, из которой удаляется заданное слово. Проблема в том, что строка выводится также горизонтально, как и задавалась. Прошу помощи!
Пример:
boat
load cargo to the boat truck
load
cargo
to
the
truck
Может мне стоит использовать другой цикл?
var
p, s: string;
k: byte;
begin
readln(p);
readln(s);
s := ' ' + s + ' '; // можете пояснить зачем нужны две эти строки? На практике если их убрать, то будет удаляться не все слово, а точнее будет оставаться последняя буква. Может можно это как-то исправить и без этих строк?
p := ' ' + p + ' ';
repeat
k := pos(p, s);
if k > 0 then delete(s, k, length(p) - 1);
until k = 0;
writeln(s);
end.
Ответы
Автор ответа:
1
var
p, s: string;
k, l: byte;
begin
readln(p);
readln(s);
s := ' ' + s + ' '; // Строка нужна для корректного удаления первого и/или последнего слова
p := ' ' + p + ' '; // Строка нужна для удаления слова, а не последовательности символов в слове
l := length(p) - 1;
repeat
k := pos(p, s);
if k > 0 then delete(s, k, l);
until k = 0;
for var i:=1 to length(s) do
if s[i]<>' ' then write(s[i]) else writeln;
end.
p, s: string;
k, l: byte;
begin
readln(p);
readln(s);
s := ' ' + s + ' '; // Строка нужна для корректного удаления первого и/или последнего слова
p := ' ' + p + ' '; // Строка нужна для удаления слова, а не последовательности символов в слове
l := length(p) - 1;
repeat
k := pos(p, s);
if k > 0 then delete(s, k, l);
until k = 0;
for var i:=1 to length(s) do
if s[i]<>' ' then write(s[i]) else writeln;
end.
Похожие вопросы
Предмет: Математика,
автор: jkoppa2013bts
Предмет: Физика,
автор: ar2007naz
Предмет: Русский язык,
автор: sdhjhfdg45669
Предмет: Литература,
автор: азатик7
Предмет: Математика,
автор: tataro4ka26