Ivanovich_Kostik898
?>

Составить программу, которая выделяет отдельные слова и числа из введенной пользователем строки. словом считается последовательность букв, разделяемых одним или несколькими пробелами или знаками препинания. числом считается последовательность цифр, разделяемых одним или несколькими пробелами, которая может включать точку в качестве разделителя целой и дробной части и знак минус, стоящий в начале. слова поместить в массив слов, числа поместить массив чисел. найти в массивах самое длинное слово и максимальное число. вывести на экран слова в столбик. например, если исходная строка ’длина пути равна 1 метр.’, то на экран будет выведено: д п р м л у а е и т в т н и н p

Информатика

Ответы

lovel24
// 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
Д с м ш м
л о е и е
и с т р т
н т р и р
а а а н а
  в   а  
  л      
  я      
  е      
  т 

Из-за того, что тут используется пропорциональный шрифт, нарушено взаимное расположение символов на выводе. Истинная картина дана во вложении.

Составить программу, которая выделяет отдельные слова и числа из введенной пользователем строки. сло
sherifovaelina
Представим, что мы сняли всю землю с холмов до нулевого уровня в пределах полосы шириной 1 метр, а потом засыпали её обратно так, чтобы уровень стал горизонтальным на высоте h.

Посчитаем объем земли, который был снят.
Всю землю можно разделить на фигуры толщиной 1 метр, в основании которых трапеции с высотой 1 м и основаниями - двумя соседними измерениями высоты. Тогда объем каждой фигуры V(i) = (h(i) + h(i + 1)) / 2, полный объем V = V(1) + V(2) + ... + V(N - 1) = h(1)/2 + (h(2) + h(3) + ... + h(N - 2)) + h(N - 1)/2

Объем земли, который использовался для засыпания, равен V = h (N - 1).

Эти объемы, конечно, равны, тогда h = (h(1)/2 + h(N - 1)/2 + (h(2) + h(3) + ... + h(N - 2))/(N - 1)

PascalABC.NET 3.2.1518:
begin
  var N := ReadInteger;
  print(ReadSeqInteger(N)
           .Select((x, i) -> (i = 0) or (i = N - 1) ? x/2 : x)
           .Sum / (N - 1))
end.

С вводом-выводом в файл:
begin
  var f := OpenRead('INPUT.TXT');
  var N := f.ReadInteger;
  var S := f.ReadInteger / 2;
  for var i := 2 to N - 1 do
    S += f.ReadInteger;
  S += f.ReadInteger / 2;
  print(S / (N - 1))
end.
Железная дорога при строительстве новой железной дороги возникли проблемы. дорога пролегает по холми
Monstr13
Представим, что мы сняли всю землю с холмов до нулевого уровня в пределах полосы шириной 1 метр, а потом засыпали её обратно так, чтобы уровень стал горизонтальным на высоте h.

Посчитаем объем земли, который был снят.
Всю землю можно разделить на фигуры толщиной 1 метр, в основании которых трапеции с высотой 1 м и основаниями - двумя соседними измерениями высоты. Тогда объем каждой фигуры V(i) = (h(i) + h(i + 1)) / 2, полный объем V = V(1) + V(2) + ... + V(N - 1) = h(1)/2 + (h(2) + h(3) + ... + h(N - 2)) + h(N - 1)/2

Объем земли, который использовался для засыпания, равен V = h (N - 1).

Эти объемы, конечно, равны, тогда h = (h(1)/2 + h(N - 1)/2 + (h(2) + h(3) + ... + h(N - 2))/(N - 1)

PascalABC.NET 3.2.1518:
begin
  var N := ReadInteger;
  print(ReadSeqInteger(N)
           .Select((x, i) -> (i = 0) or (i = N - 1) ? x/2 : x)
           .Sum / (N - 1))
end.

С вводом-выводом в файл:
begin
  var f := OpenRead('INPUT.TXT');
  var N := f.ReadInteger;
  var S := f.ReadInteger / 2;
  for var i := 2 to N - 1 do
    S += f.ReadInteger;
  S += f.ReadInteger / 2;
  print(S / (N - 1))
end.
Железная дорога при строительстве новой железной дороги возникли проблемы. дорога пролегает по холми

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Составить программу, которая выделяет отдельные слова и числа из введенной пользователем строки. словом считается последовательность букв, разделяемых одним или несколькими пробелами или знаками препинания. числом считается последовательность цифр, разделяемых одним или несколькими пробелами, которая может включать точку в качестве разделителя целой и дробной части и знак минус, стоящий в начале. слова поместить в массив слов, числа поместить массив чисел. найти в массивах самое длинное слово и максимальное число. вывести на экран слова в столбик. например, если исходная строка ’длина пути равна 1 метр.’, то на экран будет выведено: д п р м л у а е и т в т н и н p
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

annayarikova
galinazajceva781
Коваль1974
svetavalera
Марина1101
vdnh451
million2003
Любовь-Волков1205
uglichwatch
Shevchenko
Vyacheslavovich-Gubanov
cat2572066
mokeevahelena
nekrasovaolga27
shurshin6975