Дан массив чисел. Найти количество частей, находящихся в промежутке от1 до

Дан массив чисел. Найти количество частей, находящихся в интервале от1 до 12 и расположенных до максимального элемента массива. ПАСКАЛЬ.

Задать свой вопрос
2 ответа
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-20,20); a.Println;
  Writeln(a[:a.IndexMax].Where(x-gt;(xgt;=1) and (xlt;=12)).Count)
end.

Пример
n= 15
3 12 -1 10 -7 18 10 19 8 9 -2 4 0 19 13
4

А вот так учат писать эту же программку в школе...

const
  nn=100;
var
  a:array[1..nn] of integer;
  i,n,imax,k:integer;
begin
  Randomize;
  Write('n='); Read(n);
  for i:=1 to n do begin
    a[i]:=Random(41)-20;
    Write(a[i],' ');
    end;
  Writeln;
  imax:=1;
  for i:=2 to n do
    if a[i]gt;a[imax] then imax:=i;
  k:=0;
  for i:=1 to imax do
    if (a[i]gt;=1) and (a[i]lt;=12) then k:=k+1;
  Writeln(k)
end.

Вот отсюда и вопрос: для чего учить писать длинно, трудно и практически непонятно?
Const
   N = 33;
Var
   A:array[1..N] of integer;
   i,Max,k:integer;
Begin
Randomize;
Write('Начальный массив: ');
For i:= 1 to N do
    Begin
    A[i]:=random(N);
    Write(A[i],' ');
    End;
WriteLn;
Max:=1;
For i:= 2 to N do
    if A[i]gt;A[Max] then Max:=i;
WriteLn('A[',Max,'] = ',A[Max]);
Write('Разыскиваемые элементы: ');
k:=0;
For i:= 1 to N do
    if (1lt;=A[i])and(A[i]lt;=12) then
       Begin
       Write(A[i],' ');
       k:=k+1;
       End;
WriteLn;
Write('Их количество: ',k);
End.

Пример:
Начальный массив: 19 24 23 22 17 15 18 21 16 18 6 17 30 23 14 24 11 28 19 13 4 28 21 23 7 19 26 4 11 16 10 14 28
A[13] = 30
Искомые элементы: 6 11 4 7 4 11 10
Их количество: 7
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт