osandulyak
?>

Напишите программу, которая выводит первое слово переданной её символьной строки. слово – это последовательность непробельных символов, ограниченная пробелами или концами строки. входные данные входная строка содержит произвольную последовательность символов. выходные данные программа должна вывести первое слово этой строки.

Информатика

Ответы

sinicin80
PascalABC.NET 3.4.2, сборка 1826 от 07.10.2018Внимание! Если программа не работает, обновите версию!

begin

 ReadlnString.ToWords.First.Println

end.

Arutyunovich
Если в нашем распоряжении имеется современная версия PascalABC.Net 3.2, то есть минимум два решить такую задачу. Массив мы будем заполнять случайными числами из интервала [1;98].

Первый использовать имеющуюся в этой версии паскаля возможность находить максимумы и минимумы встроенными в язык средствами. Это очень быстро программируется и обычно страхyет от возможных ошибок при написании более детальных программ.

// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(30,1,98); a.Println;
  Writeln('D=',a.Where(x->x.IsEven).Max-a.Where(x->x.IsOdd).Max)
end.

Пример
29 52 58 75 13 77 63 13 17 6 67 17 53 51 14 93 83 30 81 17 93 58 13 71 78 96 42 66 4 91
D=3

Второй не привязан к упомянутой выше версии языка, т.е. может быть использован в школах, исповедующих "доисторический стиль программирования" ))) Естественно, он длиннее и можно будет сравнить количество строк кода. Алгоритм основан на последовательном переборе элементов массива и одновременном получении максимума среди четных и нечетных его элементов.

const
  n=30;
var
  a:array[1..30] of integer;
  i,a1max,a2max:integer;
begin
  Randomize;
  a1max:=0; a2max:=0;
  for i:=1 to n do begin
    a[i]:=Random(98)+1;
    Write(a[i],' ');
    if a[i] mod 2 <> 0 then
      begin if a1max<a[i] then a1max:=a[i] end
    else
      if a2max<a[i] then a2max:=a[i]
    end;
  Writeln;
  Writeln('D=',a2max-a1max)
end.

Замечу, что данный вариант программы содержит фрагмент, в котором школьники (да и не только школьники) часто делают ошибку.
if a[i] mod 2 <> 0 then
  begin if a1max<a[i] then a1max:=a[i] end
else
  if a2max<a[i] then a2max:=a[i]
Выделенные мной begin и end на первый взгляд не нужны. Но в этом-то и ошибка!
По правилам языка паскаль когда внутри одного if встречается другой if и хотя бы один из них неполный, т.е. не содержит else, последний else относится к самому последнему из if, который без его будет неполным.
Запутанно? Поясню на нашем фрагменте.
Его без этих begin ... end можно понимать так:

if a[i] mod 2 <> 0 then
  if a1max<a[i] then a1max:=a[i]
else
  if a2max<a[i] then a2max:=a[i]

Но можно и так:

if a[i] mod 2 <> 0 then
  if a1max<a[i] then a1max:=a[i]
  else
     if a2max<a[i] then a2max:=a[i]

И паскаль, увы, понимает как раз по последнему варианту. Посему как раз begin ... end решают эту проблему. Но... встречается она не очень часто и о ней быстро забывают. А потом нарываютcя и не могут понять причины.

Что ж, выбор как решать - за вами!
volkovaoksana19806037
1) Birthday1.asf - 24.12.15 Birthday2.asf - 15.07.16 Clip_1.mpeg - 24.07.14 Clip_2.mov - 24.10.16 Clip_3.mov - 01.07.14 Family.avi - 12.08.13 Friends1.mov - 25.07.14 Friends2.mov - 04.01.14 Video1.avi - 19.07.14 Video2.avi - 21.11.13 Video3.wmv - 24.06.14 Video4.wmv - 10.07.15 2) Birthday2.asf - 15.07.16 Clip_1.mpeg - 24.07.14 Clip_3.mov - 01.07.14 Family.avi - 12.08.13 Friends2.mov - 04.01.14 Video2.avi - 21.11.13 Video4.wmv - 10.07.15 3) Family.avi - 12.08.13 Video2.avi - 21.11.13 Friends2.mov - 04.01.14 Clip_3.mov - 01.07.14 Clip_1.mpeg - 24.07.14 Video4.wmv - 10.07.15 Birthday2.asf - 15.07.16 Итог : Video2.avi - 21.11.13 Clip_3.mov - 01.07.14 Clip_1.mpeg - 24.07.14 Video4.wmv - 10.07.15 Birthday2.asf - 15.07.16 ответ: 5

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

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

Напишите программу, которая выводит первое слово переданной её символьной строки. слово – это последовательность непробельных символов, ограниченная пробелами или концами строки. входные данные входная строка содержит произвольную последовательность символов. выходные данные программа должна вывести первое слово этой строки.
Ваше имя (никнейм)*
Email*
Комментарий*

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

Вячеславович-Дмитрий1694
nsn-2012
bei07
Матвеев
bsi771184
baltgold-m27
olegmgu1
Палкина-Дроздова
Demina-Khokhlov584
kristeisha871
lmedintseva6
horizma609
nopel91668
zubareva23338
lilit-yan