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

Написать программу, в которой для массива из 20 элементов, заполненного случайными числами от -20 до +20, 20 раз выполняется следующая процедура: слева направо по порядку сравниваются все соседние элементы и, если первый больше второго, они меняются местами. в конце процедуры массив выводится на
экран в строку. таким образом, результатом работы программы будут 20 строк. надо на pascalabc, на pascalabc.net у меня не работает- не выполняет до конца и не останавливаетю

👇
Открыть все ответы
Ответ:
tanyaxxx15
tanyaxxx15
02.06.2020
// PascalABC.NET 3.1, сборка 1204 от 24.03.2016
begin
  var F,G:file of integer;
  Assign(F,'FFile.dat'); Rewrite(F);
  for var i:=1 to 30 do Write(F,Random(-20,20));
  // Файл F создан и заполнен
  Assign(G,'GFile.dat'); Rewrite(G);
  F.Seek(0);
  var e:integer;
  Print('F:');
  while not F.Eof do begin
    Read(F,e); Print(e);
    if e>0 then Write(G,e)
    end;
  F.Seek(0);
  while not F.Eof do begin
    Read(F,e);
    if e<0 then Write(G,e)
    end;
  F.Seek(0);
  while not F.Eof do begin
    Read(F,e);
    if e=0 then Write(G,e)
    end;
  F.Close;
  Writeln;
  Print('G:');
  G.Seek(0);
  while not G.Eof do begin
    Read(G,e); Print(e)
    end;  
  G.Close
end.

Тестовое решение:
F: -14 15 -16 0 7 0 18 19 -12 -10 6 15 -19 -14 -15 -1 -6 -4 -20 12 10 4 3 16 -14 -20 3 10 -13 -16
G: 15 7 18 19 6 15 12 10 4 3 16 3 10 -14 -16 -12 -10 -19 -14 -15 -1 -6 -4 -20 -14 -20 -13 -16 0 0

Данное решение неоптимально по времени, поскольку файл читается трижды. Можно сделать иной вариант, читая данные за один проход и помещая в две вс структуры памяти отрицательные и нулевые элементы.

// PascalABC.NET 3.1, сборка 1204 от 24.03.2016
begin
  var F,G:file of integer;
  Assign(F,'FFile.dat'); Rewrite(F);
  for var i:=1 to 30 do Write(F,Random(-20,20));
  // Файл F создан и заполнен
  Assign(G,'GFile.dat'); Rewrite(G);
  var n:=F.FileSize;
  var neg,zer:array of integer;
  SetLength(neg,n); SetLength(zer,n);
  F.Seek(0);
  var e:integer;
  var ineg:=0;
  var izer:=0;
  Print('F:');
  while not F.Eof do begin
    Read(F,e); Print(e);
    if e>0 then Write(G,e)
    else
      if e<0 then begin neg[ineg]:=e; Inc(ineg) end
      else begin zer[izer]:=e; Inc(izer) end
    end;
  F.Close;
  Writeln;
  SetLength(neg,ineg);
  foreach e in neg do Write(G,e);
  SetLength(zer,izer);
  foreach e in zer do Write(G,e);
  Print('G:');
  G.Seek(0);
  while not G.Eof do begin
    Read(G,e); Print(e)
    end; 
  G.Close
end.

Тестовое решение:
F: 7 5 -14 6 -11 -9 5 -1 5 -5 -7 -1 4 -20 17 -19 0 -3 0 6 20 1 -2 -18 9 20 0 -2 3 -13
G: 7 5 6 5 5 4 17 6 20 1 9 20 3 -14 -11 -9 -1 -5 -7 -1 -20 -19 -3 -2 -18 -2 -13 0 0 0
4,4(59 оценок)
Ответ:
sdfsdfsddf
sdfsdfsddf
02.06.2020
A)X = *5(16) = *0*(8)
# код на руби
for i in "100".to_i(8).."f5".to_i(16)
    p [i, i.to_s(16), i.to_s(8)] if i%16==5 and (i/8)%8==0
end

Выдает 3 варианта ответов
[69, "45", "105"]
[133, "85", "205"]
[197, "c5", "305"]


б)X = 3*9(16)= 1**(8)
тут или ошибка или нужно доказать что такого числа нет
Минимальное 16ричное число при таких данных 309(16) = 777(10)
Максимальное 8ричное число при таких данных 177(8) = 127(10)
Так что такого числа нет

если переписать условие иначе
б)X = 3*9(16)= 1***(8)

тогда

# код на руби
for i in 0..2000
    p [i, i.to_s(16), i.to_s(8)] if i%16==9 and (i/16/16)==3 and i/8/8/8==1
end

дает такие ответы
[777, "309", "1411"]
[793, "319", "1431"]
[809, "329", "1451"]
[825, "339", "1471"]
[841, "349", "1511"]
[857, "359", "1531"]
[873, "369", "1551"]
[889, "379", "1571"]
[905, "389", "1611"]
[921, "399", "1631"]
[937, "3a9", "1651"]
[953, "3b9", "1671"]
[969, "3c9", "1711"]
[985, "3d9", "1731"]
[1001, "3e9", "1751"]
[1017, "3f9", "1771"]
4,5(47 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ