Страница 1 из 2
Замена в строке в Паскале
Добавлено: 26 ноя 2008, 18:48
PCJakeD
Помогите решить задачку на паскале
Составить программу каждое слово “страна” заменить на слово “государство”. Исходный массив и результаты вывести на экран. Алгоритм вычисления оформить в виде подпрограммы Procedure.
Re: подпрограммка Procedure
Добавлено: 27 ноя 2008, 15:09
YuraPascal
Если я правельно понял, есть одномерный масив из слов. и если есть слово "страна", то его заменить на "государство"?
Я решу тебе эту задачку за 30р. Если интересно, пиши на
yura30682@rambler.ru
Re: подпрограммка Procedure
Добавлено: 28 ноя 2008, 02:17
Naeel Maqsudov
YuraPascal, он не хочет видимо за 30р. Он меня попросил бесплатно. Извини.
Код: Выделить всё
procedure Replace(var S:string; What,By:string);
var
R:string;
p:integer;
begin
R:='';
repeat
p:=pos(What,S);
if P>1 then R:=R+copy(S,1,p-1);
if P>0 then begin
R:=R+By;
delete(S,1,P+length(What)-1);
end;
until p=0;
S:=R+S;
end;
вызывается процедура в цикле по исходному массиву строк:
Код: Выделить всё
Replace(MassivStrok[i],'страна','государство');
Re: подпрограммка Procedure
Добавлено: 28 ноя 2008, 02:36
PCJakeD
Что то не то, он пишет:
BEGIN expected but end of file found.
что может быть не так? Код
Re: подпрограммка Procedure
Добавлено: 28 ноя 2008, 02:39
PCJakeD
Код только тот который ты написал или еще что то надо? (просто процедуру я не знаю)
Re: подпрограммка Procedure
Добавлено: 29 ноя 2008, 15:10
Хыиуду
Сначала код процедуры
потом
Код: Выделить всё
var MassivStrok:array[1..10] of string
begin
{Тут каким-то образом этот массив строк заполняется}
For i:=1 to 10 do Replace(MassivStrok[i],'страна','государство'); {В этой строке он обрабатывается}
{Тут он как-то выводится}
end.
Re: Замена в строке в Паскале
Добавлено: 30 ноя 2008, 19:25
PCJakeD
Что то я не понимаю. Если не сложно можете код написать.
Re: Замена в строке в Паскале
Добавлено: 30 ноя 2008, 20:03
Naeel Maqsudov
Дело в том, что Вы не указали никакие требования к массиву строк, не указали как он вводится. С клавиатуры, или из файла... Была бы корректно поставленная задача - было бы для нее быстрое и конкретное решение. А так мы сейчас Вам тут напишем, а что толку? Вы все равно Вы это решение потом не сдадите.
[syntax=Delphi]
{!!!сюда процедуру}
var
MassivStrok:array[1..100] of string
i,N:integer;
begin
{ввод текста}
N:=0;
writeln('Введите текст. Для завершения нажмите Enter 2 раза:');
repeat
inc(N);
readln(MassivStrok[N]);
end;
until (N=100) or (MassivStrok[N]='');
{замена}
for i:=1 to N do Replace(MassivStrok,'страна','государство');
{вывод}
for i:=1 to N do writeln(MassivStrok);
end.
[/syntax]
Re: Замена в строке в Паскале
Добавлено: 30 ноя 2008, 20:17
PCJakeD
Я утучнил, мне сказали: "Массив задать любым известным тебе способом: ввести с экрана или из внешнего файла, предварительно создав его в любом текстовом редакторе, задать генератором случайных чисел, задать как типизированную константу."
Re: Замена в строке в Паскале
Добавлено: 01 дек 2008, 14:52
Хыиуду
Ага, особенно весело надеяться, что генератор случайных чисел выдаст слово "страна". Хотя если обезьяна миллиард лет будет стучать по клавишам пишущей машинки, у нее есть шанс напечатать "Войну и Мир".