Составить программу, которая выделяет отдельные слова и числа из введенной пользователем строки. Словом считается последовательность букв, разделяемых одним или несколькими пробелами или знаками препинания. Числом считается пос...
Составить программу, которая выделяет отдельные слова и числа из введенной
пользователем строки. Словом считается последовательность букв, разделяемых одним
или несколькими пробелами или знаками препинания. Числом считается
последовательность цифр, разделяемых одним или несколькими пробелами, которая
может включать точку в качестве разделителя целой и дробной части и знак минус,
стоящий в начале.
Слова поместить в массив слов, числа поместить массив чисел. Найти в массивах
самое длинное слово и максимальное число.
Вывести на экран слова в столбик. Например, если исходная строка ’Длина пути
равна 1 метр.’, то на экран будет выведено:
Д п р м
л у а е
и т в т
н и н p
Ответ(ы) на вопрос:
Гость
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016
begin
var s:=ReadlnString('>');
var delims:=' ,:;!?'.ToCharArray; // разделители
var a:=s.ToWords(delims).JoinIntoString; // очистка от мусора
var aw:=a.MatchValues('([A-Za-zА-Яа-яЁё])+').ToArray;
var ad:=a.MatchValues('([-\d.])+').ToArray;
Print('Слова:'); aw.Println;
Print('Самое длинное слово:');
var ind:=aw.Select(x->x.Length).ToArray.IndexMax;
Println(aw[ind]);
var m:=aw[ind].Length; // самая большая длина слова
aw:=aw.Select(x->x.PadRight(m)).ToArray;
Print('Числа:'); ad.Println;
Print('Самое длинное число:');
Println(ad[ad.Select(x->x.Length).ToArray.IndexMax]);
for var j:=1 to m do begin
for var i:=0 to aw.Length-1 do Print(aw[i][j]);
Writeln
end;
end.
Тестовое решение:
> Длина составляет 1.2 метра; ширина 0.93 метра!
Слова: Длина составляет метра ширина метра
Самое длинное слово: составляет
Числа: 1.2 0.93
Самое длинное число: 0.93
Д с м ш м
л о е и е
и с т р т
н т р и р
а а а н а
в а
л
я
е
т
Из-за того, что тут используется пропорциональный шрифт, нарушено взаимное расположение символов на выводе. Истинная картина дана во вложении.
Не нашли ответ?
Похожие вопросы