Предмет: Информатика, автор: Petrycvoo8

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


KnowsUser1: язык?
Petrycvoo8: Делфи

Ответы

Автор ответа: KnowsUser1
0

Ответ:

Язык не указан, сделаю на PascalABC.NET 3.6.3:

begin

 var A := ArrRandom(10, -99, 99).Where(p -> p.IsOdd).ToArray;

 if A.Length > 0 then A.OrderDescending.Println else println('None')

end.


Petrycvoo8: Ой, понял
Petrycvoo8: А возможно как-нибудь конвертировать код с Pascal в Delphi?
KnowsUser1: Конкретно мою версию нет, ибо она написана с использованием библиотек .NET Framwork, которые естественно не поддерживаются Delphi
Petrycvoo8: О боже мой(
Petrycvoo8: А возможно хоть как-то написать это задание?
KnowsUser1: Точнее, это можно переписать на дельфи, при определённой степени "нечего делать", но выйдет там далеко не 4 строчки. Потому что дельфи не может в дотнет
Petrycvoo8: А насколько много там выйдет?
Petrycvoo8: Можно ли как-то с вами связаться
Petrycvoo8: И если бы вы могли, скажите пожалуйста стоимость всего этого
KnowsUser1: Просто пересоздайте вопрос, и укажите что вам нужен код именно на дельфи или на Borland Pascal, насколько знаю, они совместимы. Потому что дельфи, по сути, "альтернативная ветвь эволюции" того самого классического паскаля
Автор ответа: LRSM
1

Delphi

Ответ:

  • var
  •  a1, a2: array of integer;
  •  n, c, i: integer;
  • procedure PrintDescending(a: array of integer);
  • var i, j, max: integer;
  • begin
  •  for i := 0 to Length(a) - 1 do
  •  begin
  •    for j := 0 to Length(a) - 1 do
  •      if a[j] > a[max] then max := j;
  •    Write(a[max], ' ');
  •    a[max] := -10001;
  •  end;
  • end;
  • begin
  •  //Запрашиваем ввод длины массива:
  •  Write('Введите длину массива: ');
  •  Read(n);
  •  
  •  //Устанавливаем длину массивов:
  •  SetLength(a1, n);
  •  SetLength(a2, n);
  •  
  •  //Заполняем первый массив случайными числами:
  •  for i := 0 to n - 1 do
  •    a1[i] := Random(201) - 100;
  •  
  •  //Заполняем второй массив только нечётными элементами первого:
  •  for i := 0 to n - 1 do
  •    if Abs(a1[i]) mod 2 = 1 then  
  •    begin
  •      a2[c] := a1[i];
  •      c := c + 1;
  •    end;
  •  
  •  //Урезаем второй массив:
  •  SetLength(a2, c);
  •  
  •  //Выводим первый массив:
  •  for i := 0 to n - 1 do
  •    Write(a1[i], ' ');
  •  Writeln;
  •  
  •  //Выводим второй массив в порядке убывания:
  •  if c = 0 then Write('Нечётных элементов нет.')
  •  else PrintDescending(a2);
  • end.

Пример работы:

Приложения:
Похожие вопросы
Предмет: Русский язык, автор: winner1000
Предмет: Математика, автор: Аноним