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

Написать перевода из 10 с.с. в 2 с.с. двумя функции 2) процедуры

👇
Ответ:
Marieta111
Marieta111
08.05.2022
Function toBin(dec: integer): string;
var
  buf: integer;
  str: string;
begin
  buf := dec;
  repeat
    str := concat(IntToStr(buf mod 2), str);
    buf := buf div 2;
  until (buf = 0);
  toBin := str;
end;

procedure toBin(dec: integer; var bin: string);
var
  buf: integer;
begin
  buf := dec;
  repeat
    bin := concat(IntToStr(buf mod 2), bin);
    buf := buf div 2;
  until (buf = 0);
end;

var
  s: string;

begin
  writeln(toBin(10));
  toBin(10, s);
  writeln(s);
end.
4,4(4 оценок)
Открыть все ответы
Ответ:
АлёнаKet234
АлёнаKet234
08.05.2022
Последняя часть вопроса поставлена некорректно. Массив может в общем случае индексироваться, начиная с любого целого числа, например, с нуля или с единицы. В случае индексирования от нуля, четные индексы будут иметь первый, третий, пятый и т.д. по порядку элементы, а при нумерации от единицы - второй, четвертый, шестой и т.д.
Будем считать, что индекс массива совпадает с порядковым номером элемента, т.е. индексация в массиве идет от единицы, тогда выводу подлежат второй, четвертый, шестой и т.д. элементы.

1. Современный "короткий" вариант

// PascalABC.NET 3.1, сборка 1190 от 05.03.2016
begin
  var a:=ArrRandom(17,-50,50); a.Println;
  a.Where((x,i)->Odd(i)).Println
end.

Тестовое решение:
-6 35 -48 -50 -16 -36 20 16 -10 32 -4 34 46 -45 14 13 -36
35 -50 -36 16 32 34 -45 13

2. Традиционный ("школьный" вариант) - так до сих пор учат в школах

// PascalABC.NET 3.1, сборка 1190 от 05.03.2016
const
  n=17;
var
  a:array[1..n] of integer;
  i:integer;
begin
  Randomize;
  for i:=1 to n do begin
    a[i]:=Random(101)-50;
    Write(a[i],' ')
    end;
  Writeln;
  i:=2;
  while i<=n do begin
    Write(a[i],' ');
    i:=i+2
    end;
  Writeln
end.

Тестовое решение:
27 -29 10 -35 -48 -45 0 4 -50 -13 17 -41 12 26 38 26 23
-29 -35 -45 4 -13 -41 26 26
4,8(55 оценок)
Ответ:
NUrka177
NUrka177
08.05.2022
Const n=10;
var a:array[1..n+1] of integer;
k,i:integer; b:boolean;
begin
Randomize;
for i:=1 to n do
 begin
 a[i]:=random(21)-10;
 write(a[i]:4);
 end;
writeln;
write('Введите число: '); readln(k);
b:=false;
for i:=1 to n do
 if a[i]=k then b:=true;
if not b then
  begin
  for i:=n+1 downto n div 2 + 1 do a[i]:=a[i-1];
  a[n div 2]:=k;
  for i:=1 to n+1 do write(a[i]:4);
  writeln;
  end
 else writeln('Массив не изменился');
end.

Пример:
   6  10  -5  -3  -9  -8  -3   3  -9   7
Введите число: 4
   6  10  -5  -3   4  -9  -8  -3   3  -9   7
4,4(44 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ