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

Паскаль: напишите процедуру, которая выводит на экран переданное ей число в негадвоичной системе счисления, основание которой равно (–2). например,

👇
Ответ:
belovaan80p073pt
belovaan80p073pt
30.03.2022
Procedure convert ( x: integer );
var s: string;
k, error, len: integer;
element: array[1..20] of real;
i, rez: real;
const N = -2;
begin
s := IntToStr(x);
len := length(s);
if len = 0 then writeln('Ошибка!')
else
begin  i := 0;
rez := 0;
for k := 1 to len do val(s[k], element[k], error);
for k := 1 to len do
begin
i := element[k] * power( N, len - k );
rez := rez + i;
end;
writeln(rez);
end;
end;

var numeric: integer;
begin
write('Введите двоичное число для перевода в систему счисления с основанием (-2): ');
readln(numeric);
write('ответ: ');
convert(numeric);
end.
4,5(63 оценок)
Открыть все ответы
Ответ:
2x2466
2x2466
30.03.2022
Первый алгоритм:
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
4,7(82 оценок)
Ответ:
lyubimov20051
lyubimov20051
30.03.2022
Для этого нужно в цикле пробежаться по элементам 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;
4,5(67 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ