М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Ванёк20061
Ванёк20061
14.01.2023 14:27 •  Информатика

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

👇
Ответ:
всмпасы
всмпасы
14.01.2023
//Не самое изящное решение
//Pascal ABC.NET 3.1

Const
 n=5;

 Var ar:array[1..2*n] of integer;
 j,a,k,i,t:integer;
begin
 write('A:');
readln(a);
 writeln('Array:');
 for i:=1 to n do
 readln(ar[i]);
 j:=1;
 k:=n;
 while j<>k do
  begin
   if ((ar[j]>=0) and (ar[j+1]>=0)) or ((ar[j]<=0) and (ar[j+1]<=0)) then
   begin
    t:=ar[k];
    for i:=k-1 downto j do
     ar[i+1]:=ar[i];
    ar[j+1]:=a;
    inc(k);
    j:=j+2;
    ar[k]:=t;
   end
   else
 inc(j);
  end;
 writeln('Final array:');
 for i:=1 to k do write(ar[i]:4);
end.

Пример ввода 1:
6
1
2
3
4
5
Пример вывода 1:
1 6 2 6 3 6 4 6 5

Пример ввода 2:
6
-1
2
-3
4
-5
Пример вывода 2:
-1 2 -3 4 -5

Пример ввода 3:
6
1
2
-3
4
5
Пример вывода 3:
1 6 2 -3 4 6 5
4,7(38 оценок)
Открыть все ответы
Ответ:
Mashaaakuzzz
Mashaaakuzzz
14.01.2023
// PascalABC.NET 3.3, сборка 1627 от 27.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк (столбцов) в матрице:');
  Writeln('*** Исходная матрица ***');
  var a:=MatrRandom(n,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var (su,sd,sl):=(0,0,0);
  for var i:=0 to n-1 do
    for var j:=0 to n-1 do
      if i<j then su+=a[i,j]
      else
        if i=j then sd+=a[i,j]
        else sl+=a[i,j];
  Writeln('Суммы элементов:');
  Writeln(' - верхней треугольной матрицы ',su);
  Writeln(' - главной диагонали ',sd);
  Writeln(' - нижней треугольной матрицы ',sl)
end.

Пример
Количество строк (столбцов) в матрице: 4
*** Исходная матрица ***
 -73 -89   4  39
  77 -32  23 -45
 -29 -70 -88 -40
 -83   9  21 -46

Суммы элементов:
 - верхней треугольной матрицы -108
 - главной диагонали -239
 - нижней треугольной матрицы -75

"Школьный" вариант

const
  nn=20; { максимальный размер }

var
  a:array[1..nn,1..nn] of integer;
  i,j,n:integer;
  su,sd,sl:longint;
 
begin
  Write('Количество строк (столбцов) в матрице:');
  Readln(n);
  Randomize;
  Writeln('*** Исходная матрица ***');
  su:=0; sd:=0; sl:=0;
  for i:=1 to n do begin
    for j:=1 to n do begin
      a[i,j]:=Random(199)-99;
      Write(a[i,j]:4);
      if i<j then su+=a[i,j]
      else
        if i=j then sd+=a[i,j]
        else sl+=a[i,j]
      end;
      Writeln
    end;
  Writeln('Суммыа элементов:');
  Writeln(' - верхней треугольной матрицы ',su);
  Writeln(' - главной диагонали ',sd);
  Writeln(' - нижней треугольной матрицы ',sl)
end.
4,5(60 оценок)
Ответ:
Han121
Han121
14.01.2023
C++

#include <iostream>#include <cstdlib>#include <ctime>using namespace std;int main(){ srand(time(0)); int mas[5][5]; int sum=0,sum1=0,sum2=0; for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ mas[i][j]=10+rand()%50; } } for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ if(i==j)sum+=mas[i][j]; if(i>j)sum1+=mas[i][j]; if(i<j)sum2+=mas[i][j]; } } for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ cout<<mas[i][j]<<" "; } cout<<endl; } cout<<endl; cout<<sum<<" "<<sum1<<" "<<sum2<<endl; return 0;}
4,8(70 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ