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

по строкам в Паскале

Задача: дана строка,состоящая из слов,разделенных пробелами. Найти среднюю длину слов этой строки и вывести слова, длина которых отличается не более чем на два символа от средней. P.S.:помогите плиз ,а то моя программа не работает
К!
Канат !!!
296
разбеваешь всю строку по словам, т. е создаем массив слов, это делается циклом и сравнением, затем или сразу узнаем длинну слова и заносим эту цифру в массив чисел. потом, складываешь все числа и делишь на их количество, вот те средняя длинна.
вывод слов так же выполняется циклом и сравнением, если длинна слова > средней длинны - 2 и длинна слова < средней + 2 то вывести
Ruslan Ahmedov
Ruslan Ahmedov
1 155
Лучший ответ
Доброго времени суток.

Стесняюсь спросить, а где ваша программа, которая не работает?

Принцип простой. В цикле выделяете из строки слова, считаете суммарную длину и количество слов. По окончании цикла делите одно на другое и таким образом находите стеднюю длину слова. А дальше во втором проходе опять выделяете слова и выводите те, длина которых.. . Ну вы понимаете. Это делается примерно так

S := S + ' '; {чтобы не потерять последнее слово}
L := 0;
N := 0;
while Pos(' ', S) > 0 do begin {пока в строке есть пробелы, а значит и слова}
S1 := Copy(S, 1, Pos(' ', S) -1); {выделяем очередное}
L := L + Length(S1); {суммируем длину}
N := N + 1; {и увеличиваем счетчик слов}
Delete(S,1, Pos(' ', S)); {удаляем слово из входной строки}
end;
MidLen := L / N; {определяем среднюю длину слова}

Второй проход самостоятельно. И учтите, что, поскольку при выделении слова удаляются из строки, то работать нужно с копией.

Удачи!
HM
Hasan Matyakubow
59 613
> помогите .. а то моя программа не работает

Помолиться что ли, чтобы заработала ?)
Или что ?)
Furqat Tukhtaev
Furqat Tukhtaev
32 502
пиши сюда свою программу - поможем.
573565133, напиши, помогу чем смогу, аська
Иззат Умаров
Иззат Умаров
3 658