Другие языки программирования и технологии

Помогите написать задачу в Pascal.

тема: Работа со строковыми переменными задача: Удалить из педложения (не менее 7 –ми слов) все нечетные.
тестить не на чем. поэтому как есть. прямо с блокнота. учитесь вы.... жалко вас. на готовое привыкли. это же интересно задачи решать, с этого и состоит программирование, потом облажаетесь же.

program raspizdyai_stroki_1;
usescrt;
var
slova[1..255]of string;
kol_word:byte;
predl:string;
i:byte;

begin
clrscr;
kol_word:=1;

writeln('vvod predlozheniya (>7 C/\OB)');
readln(predl);

//otdelyaet slova drug ot druga, i kazhdoe slovo v yacheiku massiva
for i:=1 to length(predl) do
begin
if predl<>' ' then
begin
slova[kol_word]:=slova[kol_word]+predl;
end
else
begin
inc(kol_word);
end;
end;

//pechat ne chetnih slov
for i:=1 to kol_word do
begin
//libo <>
//libo =
if (i mod 2)<>0 then
begin
write(slova,' ');
end;

writeln;

end;

repeat until keypressed;
end.
Михаил Едренов
Михаил Едренов
3 537
Лучший ответ
Доброго времени суток.

Все нечетные что? Слова, символы?

Если символы, то

for i:=Length(S) downto 1 do if i mod 2 = 1 then Delete(S, i, 1);

а если слова, то

S := S + ' '; {добавляем пробел к строке, чтобы не потерять последнее слово}
S1:= ''; {пустая строка для результата}
i := 1; {счетчик слов}
while Pos(' ', S) > 0 do begin {пока в строке есть пробел, а значит и слова}
if i mod 2 = 0 then S1 := S1 + Copy(S, 1, Pos(' ', S)); {если слово четное, добавляем его к результату}
Delete(S, 1, Pos(' ', S)); {и удаляем из входной строки }
end;

Delete(S1, Length(S1), 1); {если очень хочется, можем удалить последний пробел}
S := S1; {заменяем исходную строку результирующей}

Остальное (объявление переменных, ввод данных, вывод результата и оформление программы) сами, иначе это будет уже на помощь.

Удачи!