Найти самое короткое слово в массиве и его номер в тексте - Pascal
Формулировка задачи:
Привет всем, нужна помощь:Дан текст, слова в нем разделяются пробелом, в конце стоит точка. Найти самое короткое слово в массиве и его номер в тексте.
Фулл программу пожалуйста, зарание спасибо!
Решение задачи: «Найти самое короткое слово в массиве и его номер в тексте»
textual
Листинг программы
var s, w: string;
a: array[1..100] of string;
i, m, n: integer;
begin
writeln('Введите текст с точкой в конце:');
readln(s);
m := pos('.', s);
if m > 0 then delete(s, m, length(s) - m + 1);
s := s + ' ';
m := 0;
w := '';
for i := 1 to length(s) do
if (s[i] = ' ') and (length(w) > 0)
then begin
inc(m);
a[m] := w;
w := ''
end
else w := w + s[i];
if m = 0
then write('Слова не найдены')
else begin
n := 1;
for i := 2 to m do
if length(a[i]) < length(a[n])
then n := i;
write('Самое короткое слово в тексте: "', a[n], '", его номер: ', n)
end;
readln
end.
Объяснение кода листинга программы
- Объявляются переменные:
sкак строка для хранения вводимого текста с точкой в конце.wкак строка для временного хранения отдельного слова из текста.aкак массив строк размером до 100 элементов.i,m,nкак целочисленные переменные.
- Пользователю предлагается ввести текст с точкой в конце.
- Определяется позиция точки в тексте и сохраняется в переменной
m. - Если точка найдена, она удаляется из текста вместе со всем, что находится после нее.
- К тексту добавляется пробел в конце.
- Инициализируются переменная
mкак 0 и переменнаяwкак пустая строка. - Происходит цикл по каждому символу в строке
sдля поиска отдельных слов:- Если текущий символ - пробел и длина временной переменной
wбольше 0, тогда текущее слово добавляется в массивa. - В противном случае, символ добавляется к временной переменной
w.
- Если текущий символ - пробел и длина временной переменной
- Если в массиве
aне найдено слов, выводится сообщениеСлова не найдены. - В противном случае находится самое короткое слово в массиве и выводится его значение и номер.
- Код завершается считыванием любого ввода.