04.04.2010, 08:26 | #1 (permalink) |
Новичок
Регистрация: 04.04.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Строки. Pascal
Например: Исходный текст:велик и могуч русский язык Выходной текст:килев чугом кызя Вот, что написал я. Программа работает только в том случае, если строка line_out чему то равна, если она изначально пустая, то туда ничего не записывается. Как с этим справиться? Код HTML:
program stroki_chet_nechet;
uses CRT;
var i,d,j,k:integer;
wd1,wd2:integer {wd1-начало слова, wd2-конец слова}
line_in,line_out:string;
begin
ClrScr;
writeln('Введите текст:');
readln(line_in);
d:=0;
k:=0;
wd1:=1;
i:=1;
while i<=length(line_in) do
begin
if line_in[i]=' ' then
begin
inc(k);
if k mod 2=0 then
wd1:=i+1;
if k mod 2<>0then
begin
wd2:=i;
inc(d);
for j:=wd2 downto wd1 do
begin
line_out[d]:=line_in[j];
inc(d);
writeln(line_out);
end;
end;
end;
inc(i);
end;
writeln(line_out);
readln
end.
|
04.04.2010, 08:26 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Если хотите решить проблемы быстрее - посмотрите аналогичные темы Строки Строки |
04.04.2010, 08:38 | #2 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
Есть два способа исправить - плохой и хороший.
Плохой: Дописать в конце программы (перед writeln) line_out[0]:=d; Хороший: добавлять символы в line_out вот так: line_out:=line_out+line_in[j]; Самый лучший: забросить Паскаль куда подальше и изучать СИ. Причины проблемы: Паскаль хранит длину строки в символе с индексом[0]. Соответственно, для новой строки эта длина равна неизвестно чему, и writeln не знает, что печатать. Если же вы что-то запишите в line_out, длина этого чего-то запишется в line_out[0] и все заработает. Последний раз редактировалось Long Cat; 04.04.2010 в 08:41 |
04.04.2010, 09:00 | #4 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
Не за что :-)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|