Дан одномерный массив. Сформировать другой массив из положительных нечетных, либо вывести...

0 голосов
81 просмотров
Дан одномерный массив. Сформировать другой массив из
положительных нечетных, либо вывести сообщение, что таких нет ! Спасайте:) Язык: ТурбоПаскаль

Информатика (17 баллов) | 81 просмотров
0

Почему? Мне все равно на чем писать))) Просто дольше.

0

Ждем :)!

0

И на будущее про язык не забывайте. А то потом претензии некуда будет выставлять про "не то и не так".

0

Ну спасибо, тут некоторые команды мы не изучали, но сейчас пробнем подкорректировать )) Если что отпишу ! Спасибо

0

Есть система справки... интернет, в конце-концов. Inc(k) - стандартная конструкция язывка, заменяет k:=k+1, Odd(p) - стандартная тоже, возвращает True, если р нечетное.

0

Братан, от души !!! Спасибо ))) Как тут тебя похвалить )

0

Не нужно меня хвалить. Под ответом есть синяя кнопочка "Спасибо" - щелкнув её Вы можете выразить свою благодарность. А количество звездочек рядом - определяют размер такой благодарности.

0

Если можно еще блок - схему :D

0

Мед и ложку? С блок-схемами напряг... моя программа рисования делает стандартные квадратики и туда формулы не помещаются.

0

Ладно, раззобрались

Дан 1 ответ
0 голосов
Правильный ответ

{ Boland Pascal 7.01 }
uses Crt;
const
  n=20;
var
  a,b:array[1..n] of integer;
  i,k:integer;
begin
  ClrScr;
  Randomize;
  Writeln('*** Исходный массив ***');
  k:=0;
  for i := 1 to n do begin
    a[i]:=Random(51)-25;
    Write(a[i]:4);
    if Odd(a[i]) and (a[i]>0) then
      begin Inc(k); b[k]:=a[i] end
  end;
  Writeln;
  if k>0 then begin
    Writeln('*** Сформированный массив ***');
    for i:=1 to k do Write(b[i]:4);
    Writeln
    end
  else Writeln('Нет элементов для формирования выходного массива');
  ReadKey
end.

Тестовое решение:
*** Исходный массив ***
  -3 -16  -9  20  18  11 -25  14 -22 -20 -11  15 -19  20 -16  19  -2  -4  -8 -17
*** Сформированный массив ***
  11  15  19

А вот для сравнения современный вариант программы:
// PascalABC.NET 3.0, сборка 1088
begin
  var n:=ReadInteger('Размер массива=');
  var a:=ArrRandom(n,-25,25);
  Writeln('*** Исходный массив ***',#13#10,a);
  var b:=a.Where(x->(Odd(x) and (x>0)));
  If b.Count>0 then Writeln('*** Сформированный массив ***',#13#10,b)
  else Writeln('Нет элементов для формирования выходного массива')
end.

Тестовое решение:
Размер массива=20
*** Исходный массив ***
[-9,-1,8,-7,13,0,-22,20,18,-15,9,-14,16,15,0,1,9,-17,22,-13]
*** Сформированный массив ***
[13,9,15,1,9]

Исправлено: по "просьбам трудящихся" добавлена блок-схема.


image
(142k баллов)