Помогите, пожалуйста, составить программу, определяющую длину самого короткого слова в...

0 голосов
45 просмотров

Помогите, пожалуйста, составить программу, определяющую длину самого короткого слова в предложении. Если можно, то с объяснением. Даю 25 баллов.


Информатика (138 баллов) | 45 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1583 от 25.11.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadlnString.ToWords;
  var i:=a.Select(t->t.Length).ToArray.IndexMin;
  Writeln('Самое короткое слово "',a[i],'" длиной ',a[i].Length)
end.

Пример
Зеленые бесцветные идеи яростно спят
Самое короткое слово "идеи" длиной 4
(150k баллов)
0

А ютуб ?

0

Да не, я про то что ютуб на питоне написан (почти полностью)

0

Но он же на 5-м месте по популярности в мире

0

Спасибо за разговор, собирался питон выучить, теперь задумаюсь

0 голосов

Var i1,i,k,sl,min:integer;
s:string;begin
min:=1000;
k:=0;
readln(s);
s:=s+' ';
for i:=1 to length(s) do 
if s[i]=' ' then k:=k+1;
for i:=1 to k do begin
i1:=1;
while s[i1] <> ' ' do
begin
sl:=sl+1;
i1:=i1*k+1;
if s[i1]=' ' then begin
if slsl:=0;
end;
end;
end;
writeln('Длина наименьшего:',min);
end.

(660 баллов)
0

Фух сделал ппц сложновато чего-то

0

Даже в старом паскале можно писать короче и проще:

var s:string; p,min:integer;
begin
readln(s);
s:=s+' ';
p:=pos(' ',s);
min:=p-1;
while p>0 do
begin
delete(s,1,p);
p:=pos(' ',s);
if (p<>0)and(p-1 end;
writeln('Длина наименьшего: ',min);
end.

Пример:
Папа у Васи силён в математике
Длина наименьшего: 1