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

Program1.pas(20) : Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла program cn11;
type mat=array[1..3,1..3] of integer;
vec=array[1..3] of integer;
vs=array[1..3] of real;
var a : mat;
b : vec;
sol : vs;
p,n : integer;
de : real;
function cdet( x:mat;t:integer):real;
var i,j,k,l: integer;
s : real;
minor : mat;
begin
if t=1 then cdet:=x[1,1]
else
begin s:=0;
for k:=1 to t do
begin
for i:=1 to t-1 do
for j:=1 to k-1 do minor[i,j]:=x[i+1,j];
for i:=1 to t-1 do
for j:=k to t-1 do minor[i,j]:=x[i+1,j+1];
if odd(k) then s:=s+x[1,k]*cdet(minor, t-1)
else s:=s-x[1,k]*cdet(minor, t-1);
end;
cdet:=s;
end;
end;
function transforma(x:mat;t,l:integer):real;
var i : integer;
begin for i:=1 to t do x[i,l]:=b[i];
transforma:=cdet(x,t);
end;
begin
n:=3;
a[1,1]:= 0; a[1,2]:= -2; a[1,3]:= -8; a[1,4]:= 3;a[1,5]:= -4; a[1,6]:= -2;a[1,7]:=2; b[1]:= -104;
a[2,1]:=5; a[2,2]:= 8; a[2,3]:= 0;a[2,4]:= -5;a[2,5]:= 2;a[2,6]:= 0;a[2,7]:= -8; b[2]:= 94;
a[3,1]:= 2; a[3,2]:=-4; a[3,3]:= 7;a[3,4]:= 3;a[3,5]:= 7;a[3,6]:= 10;a[3,7]:= 9; b[3]:=159;
a[4,1]:= -4; a[4,2]:=2; a[4,3]:= 0;a[4,4]:= 3;a[4,5]:= 6;a[4,6]:= -8; b[4]:=-80;
a[5,1]:= 0; a[5,2]:=0; a[5,3]:= 8;a[5,4]:= 7;a[5,5]:= 2;a[5,6]:= -6;a[5,7]:= 2; b[5]:=204;
a[6,1]:= 7; a[6,2]:=0; a[6,3]:= 9;a[6,4]:= -9;a[6,5]:= 6;a[6,6]:= -6; b[6]:=209;
a[7,1]:= -5; a[7,2]:=9; a[7,3]:= -6;a[7,4]:= -5;a[7,5]:= 10;a[7,6]:= 0;a[7,7]:= -9; b[7]:=-29;
de:=cdet(a,n);
if de<>0 then
begin for p:=1 to n do sol[p]:= transforma(a,n,p)/de;
for p:=1 to n do writeln('x[',p,']=',sol[p]:0:3);
end
else writeln('Calcul imposibil');
end.

Показать ответ
Ответ:
1234567890824
1234567890824
27.05.2022 21:48
Первый алгоритм:
const
  n=30;
var
  a:array[1..30] of integer;
  s:longint;
  i:integer;
begin
  { формируем массив }
  Randomize;
  Writeln('Элементы массива:');
  for i:=1 to n do
  begin a[i]:=Random(51)-25; Write(a[i]:4) end;
  Writeln;
  { собственно, алгоритм }
  s:=a[1]*a[2]; i:=3;
  while i<=n-1 do
  begin s:=s+a[i]*a[i+1]; i:=i+2 end;
  Writeln('Сумма пар произведений равна ',s)
end.

Тестовое решение:
Элементы массива:
   1  10  -9 -12  -2  20  21  14   5  19  21 -14 -10 -17   5  -9  -8  17  18  11 -21  -3 -15 -10 -15 -16 -15   2   3  21
Сумма пар произведений равна 846

Второй алгоритм
const
  n=30;
var
  a:array[1..30] of integer;
  smax,imax:longint;
  i:integer;
begin
  { формируем массив }
  Randomize;
  Writeln('Элементы массива:');
  for i:=1 to n do
  begin a[i]:=Random(51)-25; Write(a[i]:4) end;
  Writeln;
  { собственно, алгоритм }
  smax:=a[1]+a[2]; imax:=1;
  for i:=2 to n-1 do
    if smax<a[i]+a[i+1] then
    begin smax:=a[i]+a[i+1]; imax:=i end;
  Writeln('Номер первого из пары элементов с максимальной суммой: ',imax)
end.

Тестовое решение:
Элементы массива:
  23  13 -11  -1 -18  20 -23   1 -21 -10   7  15  -2  24 -18 -22 -13  12 -16  22  19 -14 -14 -14  19  15   8 -15 -19 -22
Номер первого из пары элементов с максимальной суммой: 20
0,0(0 оценок)
Ответ:
виктория2003141
виктория2003141
27.05.2022 21:48
Для этого нужно в цикле пробежаться по элементам mass[i] и элементам mass[30 - i], тоесть чтобы не запоминать суму элементов достаточно её сравнить с сумой каких либо других пар (в нашом случае начало масива мы сравниваем с концом).
Далее создадим переменную, по каторой мы будем определять индекс элемента сума которого из соседним элементом являлась самой большой. Просто для проверки запускается 2 цикла в которых будет индекс инкрементироваться, Не важно в конце или в начале этот элемент. В цикле где есть этот элемент делаем проверку, найшли ли мы нужный элемент, если да, то записуем значение индекса в переменную, далее записуем проверку, на равенство индекса и переменной, что не даст нам изменить значение нужного индекса до тех пор, пока мы не найдем нужный, а индекс декрементируем, он все равно будет не изменен, по скольку в начале цыкла мы его увеличиваем на 1. Примерно все! 
C++
.
.
.
int main { 
int mass[30];
int i,counter,
j;
for(i = 0,i<30;i++)
{cout<<"Your mass: "<<mass[i] = rand%100<<endl; // делаем заполнение масива случайными числами от 0 до 100 
 }
//делаем собственно проверку

for(i=0;i<30;i++)
{
         for(j=0;j<30;j++)
        {
        if (mass[i]+mass[i+1]<mass[30-j]+mass[30-j-1]){
          counter=j;
             j--;
          }
             else {counter = i;
               i--;
         }
}
cout<<"Your max element : "<<mass[counter];
}
getch();
return 0;
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота