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

Побыстрее если можно​

Показать ответ
Ответ:
ыссмиииии
ыссмиииии
07.04.2023 01:35
{ PascalABC.Net }
const
  nn=100;
var
  a:array[1..nn] of integer;
  n:integer;

procedure aInit(p,q:integer);
{ Инициализирует массив случайными целыми значениями из интервала [p;q] }
var
  i,k:integer;
begin
  Randomize;
  k:=q-p+1;
  for i:=1 to n do a[i]:=Random(k)+p
end;

procedure aOut(k:integer);
{ Выводит в строку значения эементов массива, отводя элементу k позиций }
var
  i:integer;
begin
  for i:=1 to n do Write(a[i]:k);
  Writeln
end;

function aMax():integer;
{ Возвращает максимальное значение элемента в массиве }
  var
    i,m:integer;
begin
  m:=a[1];
  for i:=2 to n do
    if m<a[i] then m:=a[i];
  aMax:=m
end;

function SumBeforeLastPositive():integer;
{ Возвращает сумму элементов массива,
  расположенных до последнего положительного элемента }
var
  i,j,s:integer;
  flag:boolean;
begin
  i:=n; flag:=false;
  while (not flag) and (i>=1) do begin
    flag:=(a[i]<=0);
    if not flag then Dec(i)
  end;
  s:=0;
  for j:=1 to i-1 do s:=s+a[j];
  SumBeforeLastPositive:=s
end;

procedure aShrink(pa,pb:integer);
{
Процедура сжимает массив, удаляя из него элементы,
модуль которых находится в интервале [pa;pb].
Освободившийся элементы заполняются нулями.
}
var
  i,j,k:integer;
  flag:boolean;
begin
  k:=0; i:=1;
  while i<=n do
    if a[i] in [pa..pb] then
    begin
      if k=0 then k:=i-1;
      j:=i+1; flag:=false;
      while (not flag) and (j<=n) do begin
        flag:=not (a[j] in [pa..pb]);
        if not flag then Inc(j);
      end;
      if flag then begin Inc(k); a[k]:=a[j]; i:=j+1 end
      else i:=n+1
    end
    else begin Inc(k); a[k]:=a[i]; Inc(i) end;
  for i:=k+1 to n do a[i]:=0
end;

var
  p,q,k,b,c:integer;
begin
  Write('Укажите количество членов в массиве: ');
  Read(n);
  Write('Укажите интервал значений элементов массива: ');
  Read(p,q);
  Write('Укажите интервал исключаемых элементов массива: ');
  Read(b,c);
  Write('Укажите количество позиций для вывода значений элемента: ');
  Read(k);
 
  aInit(p,q);
  Write('Исходный массив'); aOut(k);
  Writeln('Значение максимального элемента равно ',aMax());
  Writeln('Сумма до последнего положительного равна ',SumBeforeLastPositive());
  Writeln('Сжатый массив');
  aShrink(b,c); aOut(k)
end.
   
Тестовое решение:
Укажите количество членов в массиве: 15
Укажите интервал значений элементов массива: -6 9
Укажите интервал исключаемых элементов массива: -2 3
Укажите количество позиций для вывода значений элемента: 3
Исходный массив  7  7  7 -1  5  5 -5  6  0 -1  3  2 -4  1  8
Значение максимального элемента равно 8
Сумма до последнего положительного равна 35
Сжатый массив
  7  7  7  5  5 -5  6 -4  8  0  0  0  0  0  0
0,0(0 оценок)
Ответ:
Marina5839458593
Marina5839458593
27.03.2021 08:59
Возможны опечатки
это язык си++ он похож на си#

#include <iostream>
using namespace std;

int main()
{
int n;
cin >> n;

// пункт а, если первая больше  выводит 1, если последняя то 3, если равны то ==. Аналогично с пунктами в и с

cout << "a)";
if (n / 100 > n % 10)
cout << 1 << "\n";
else if (n / 100 < n % 10)
cout << 3 << "\n";
else 
cout << "==" << "\n";

cout << "b)";
if (n / 100 > n / 10 % 10)
cout << 1 << "\n";
else if (n / 100 < n / 10 % 10)
cout << 2 << "\n";
else 
cout << "==" << "\n";

cout << "c)";
if (n / 10 % 10 > n % 10)
cout << 2 << "\n";
else if (n / 10 % 10 < n % 10)
cout << 3 << "\n";
else 
cout << "==" << "\n";
//system("pause");
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота