Замена в строке в Паскале
Помогите решить задачку на паскале
Составить программу каждое слово “страна” заменить на слово “государство”. Исходный массив и результаты вывести на экран. Алгоритм вычисления оформить в виде подпрограммы Procedure.
Составить программу каждое слово “страна” заменить на слово “государство”. Исходный массив и результаты вывести на экран. Алгоритм вычисления оформить в виде подпрограммы Procedure.
-
- Сообщения: 1
- Зарегистрирован: 27 ноя 2008, 11:49
Если я правельно понял, есть одномерный масив из слов. и если есть слово "страна", то его заменить на "государство"?
Я решу тебе эту задачку за 30р. Если интересно, пиши на yura30682@rambler.ru
Я решу тебе эту задачку за 30р. Если интересно, пиши на yura30682@rambler.ru
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
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],'страна','государство');
Что то не то, он пишет:
BEGIN expected but end of file found.
что может быть не так? Код
BEGIN expected but end of file found.
что может быть не так? Код
Код только тот который ты написал или еще что то надо? (просто процедуру я не знаю)
Сначала код процедуры
потом
потом
Код: Выделить всё
var MassivStrok:array[1..10] of string
begin
{Тут каким-то образом этот массив строк заполняется}
For i:=1 to 10 do Replace(MassivStrok[i],'страна','государство'); {В этой строке он обрабатывается}
{Тут он как-то выводится}
end.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Что то я не понимаю. Если не сложно можете код написать.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Дело в том, что Вы не указали никакие требования к массиву строк, не указали как он вводится. С клавиатуры, или из файла... Была бы корректно поставленная задача - было бы для нее быстрое и конкретное решение. А так мы сейчас Вам тут напишем, а что толку? Вы все равно Вы это решение потом не сдадите.
[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]
[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]
Я утучнил, мне сказали: "Массив задать любым известным тебе способом: ввести с экрана или из внешнего файла, предварительно создав его в любом текстовом редакторе, задать генератором случайных чисел, задать как типизированную константу."
Ага, особенно весело надеяться, что генератор случайных чисел выдаст слово "страна". Хотя если обезьяна миллиард лет будет стучать по клавишам пишущей машинки, у нее есть шанс напечатать "Войну и Мир".
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.