В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
ochensad
ochensad
25.05.2023 13:10 •  Информатика

Нұсқамаға байланысты айтылған дұрыс екі тұжырымды анықтаңыз, жалауша белгісін қойыңыз

Показать ответ
Ответ:
Гаргульчик
Гаргульчик
11.03.2020 12:37
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(15,-28,25); a.Println;
  Writeln('П = ',a.Aggregate(BigInteger(1),(p,q)->p*q));
  Writeln('Положительных элементов: ',a.Where(t->t>0).Count);
  var imin:=a.IndexMin;
  Writeln('Номер минимального элемента- ',imin+1,
    ', его значение равно ',a[imin])
end.

Пример
4 10 23 9 22 -6 -28 -24 20 -28 12 -18 10 -24 -21
П = -447760579166208000
Положительных элементов: 8
Номер минимального элемента- 7, его значение равно -28
0,0(0 оценок)
Ответ:
00SERGEI2003
00SERGEI2003
28.12.2022 23:05
Const
  nn=100; // максимальный размер массива

type
  tA=array[1..nn] of integer;

procedure FillArray(n:integer; var a:tA);
var
  i:integer;
begin
  Randomize;
  for i:=1 to n do a[i]:=Random(21)-10
end;

procedure PrintArray(n:integer; a:tA);
var
  i:integer;
begin
  for i:=1 to n do Write(a[i],' ');
  Writeln
end;

function PartSum(n:integer; a:tA):integer;
var
  i,i1,i2,s:integer;
begin
  i:=1;
  while (a[i]<=0) and (i<=n) do i:=i+1;
  if i>n then begin
    PartSum:=0;
    exit
    end;
  i1:=i+1;
  i:=n;
  while (i>i1) and (a[i]<=0) do i:=i-1;
  i2:=i-1;
  if i2<=i1 then PartSum:=0
  else begin
    s:=0;
    for i:=i1 to i2 do s:=s+a[i]
    end;
    PartSum:=s   
end;

procedure SwapZeros(n:integer; var a:tA);
var
  i,j:integer;
begin
  for i:=1 to n do
    if a[i]=0 then begin
      for j:=i downto 2 do a[j]:=a[j-1];
      a[1]:=0;
      end;
end;

var
  n:integer;
  a:tA;

begin
  Write('n= '); Read(n);
  FillArray(n,a);
  PrintArray(n,a);
  Writeln('S=',PartSum(n,a));
  SwapZeros(n,a);
  PrintArray(n,a)
end.

Пример
n= 21
-3 1 4 -2 10 -5 -7 7 -5 -10 -2 5 0 -6 3 5 -7 0 -9 6 4
S=-13
0 0 -3 1 4 -2 10 -5 -7 7 -5 -10 -2 5 -6 3 5 -7 -9 6 4

В качестве бонуса - современное решение без всех этих долгописаний.

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

begin
  var a:=ArrRandom(ReadInteger('n='),-10,10); a.Println;
  var i:=a.IndexesOf(t->t>0);
  Writeln('S=',a[i.First+1:i.Last].Sum);
  a:=(a.Where(t->t=0)+a.Where(t->t<>0)).ToArray; a.Println
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота